字节输出流

简介: 字节输出流

字节输出流(OutputStream)是用于将数据写出到外部的流。它是一个抽象类,具体的实现类包括文件输出流(FileOutputStream)、字节数组输出流(ByteArrayOutputStream)等。

以下是字节输出流写出数据的三种常见方式:

1.使用write(int b)方法写出单个字节:

OutputStream outputStream = new FileOutputStream("example.txt");
int data = 65; // 字母'A'的ASCII码值
outputStream.write(data); // 写出单个字节数据
outputStream.close(); // 关闭输出流

2.使用write(byte[] b)方法写出字节数组

OutputStream outputStream = new FileOutputStream("example.txt");
byte[] data = "Hello, World!".getBytes(); // 将字符串转换为字节数组
outputStream.write(data); // 写出字节数组数据
outputStream.close(); // 关闭输出流

3.使用write(byte[] b, int off, int len)方法写出部分字节数组:

OutputStream outputStream = new FileOutputStream("example.txt");
String text = "Hello, World!";
byte[] data = text.getBytes(); // 将字符串转换为字节数组
int offset = 6; // 起始位置
int length = 5; // 写出长度
outputStream.write(data, offset, length); // 写出部分字节数组数据
outputStream.close(); // 关闭输出流

flush():刷新输出流,将缓冲区中的数据立即写出

OutputStream outputStream = new FileOutputStream("example.txt");
outputStream.write("Hello, World!".getBytes());
outputStream.flush(); // 刷新输出流,确保数据被写出
outputStream.close(); // 关闭输出流

续写和换行

续写数据: 如果需要将数据追加到已有的文件末尾而不是覆盖原有内容,可以使用带有true参数的构造方法FileOutputStream(file, true)来创建 FileOutputStream 对象,并在构造方法中指定文件路径和true参数。

OutputStream outputStream = new FileOutputStream("example.txt", true); // 使用追加模式
outputStream.write("New data".getBytes());
outputStream.close();

换行: 换行符用于在文本文件中表示换行。常见的换行符包括回车符(\r)和换行符(\n)。可以使用字节数组输出流(ByteArrayOutputStream)进行换行操作,然后再将结果写出到具体的输出流中。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
baos.write("Line 1".getBytes());
baos.write('\r'); // 写入回车符
baos.write('\n'); // 写入换行符
baos.write("Line 2".getBytes());
byte[] data = baos.toByteArray();
OutputStream outputStream = new FileOutputStream("example.txt");
outputStream.write(data);
outputStream.close();


相关文章
|
监控 Android开发
【Android 开发入门】android studio 控制台打印输出日志
有些情况下,不方便使用断点的方式来调试,而是希望在控制台打印输出日志,使用过Eclipse的同学都知道Java可以使用 System.out.println(""); 来在控制台打印输出日志,但是在android studio中却是不行的,还是有差别的,那应该用什么呢? android.util.Log 在调试代码的时候我们需要查看调试信息,那我们就需要用Android Log类。
3558 0
|
4月前
|
存储 安全 Java
【Java基础】泛型:泛型擦除、通配符、上下界限定(附《思维导图》+《面试高频考点清单》)
本文系统梳理了Java泛型的核心知识体系,主要内容包括: 泛型概述:介绍了泛型的定义、本质和三大优势(类型安全、代码复用、可读性),以及泛型类、接口和方法的三种使用形式。 泛型擦除:深入解析了Java泛型实现的核心机制,包括擦除规则(无界类型擦除为Object,有界类型擦除为第一个边界类型)、擦除带来的问题(如无法使用instanceof、创建泛型数组等)及其解决方案。 泛型通配符:详细讲解了三种通配符类型(无界通配符、上界通配符和下界通配符)的语法、语义和使用场景。
|
Oracle 安全 Java
安卓逆向 -- Unidbg环境搭建篇
安卓逆向 -- Unidbg环境搭建篇
1448 3
|
Java 测试技术
Java IO流深度剖析:字节流和字符流的性能对比!
【6月更文挑战第26天】Java IO流分字节流和字符流,字节流处理所有类型数据(如图片),字符流处理文本(基于Unicode)。字节流直接处理,性能高,适合非文本文件;字符流处理文本时考虑编码,适合文本文件。性能测试显示,字节流在读写非文本文件时更快,而字符流在处理文本时更方便。选择流类型应依据数据类型和需求。
527 0
ClassCastException(类转换异常)可能原因和解决方法总结
ClassCastException(类转换异常)可能原因和解决方法总结
1419 0
|
SQL Go 数据库
XORM 框架的使用
XORM 框架的使用
|
安全 网络协议 网络安全
深入理解OpenSSL:从基础到高级应用
深入理解OpenSSL:从基础到高级应用
1928 0
|
SQL 安全 数据可视化
Apache Superset 未授权访问漏洞(CVE-2023-27524)
Apache Superset 存在未授权访问漏洞,攻击者可利用该漏洞验证和访问未经授权的资源。
981 1
|
JSON 数据格式
JSON字符串与Map互转
JSON字符串与Map互转
1332 0