字节输出流(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();