OutputStream字节输出流
OutputStream字节输出流
OutputStream (抽象类)
├── FileOutputStream
├── ByteArrayOutputStream
├── PipedOutputStream
├── FilterOutputStream
│ ├── BufferedOutputStream
│ ├── DataOutputStream
│ └── PrintStream
└── ObjectOutputStream
OutputStream 是 Java 中用于写入字节数据的抽象类,它是所有字节输出流的基类。OutputStream 提供了将字节数据写入输出目标(如文件、网络连接、内存等)的基本方法
OutputStream 的默认行为
- FileOutputStream:当使用默认构造函数 new FileOutputStream("file.txt") 时,文件内容会被清空,新数据从头开始写入。若需追加内容,需显式设置第二个参数为 true,例如 new FileOutputStream("file.txt", true)。
- BufferedOutputStream:作为装饰器类,其行为依赖于底层的 OutputStream。若底层 FileOutputStream 未开启追加模式,则 BufferedOutputStream 也会覆盖文件
常用方法
-
void write(int b)
-
作用: 将指定的字节(低 8 位)写入输出流
-
参数: b 是要写入的字节(0 到 255 之间的整数)
OutputStream output = new FileOutputStream("example.txt"); output.write(65); // 写入字节 'A' output.close();
-
-
void write(byte[] b)
- 作用: 将字节数组 b 中的所有字节写入输出流
- 参数: b 是要写入的字节数组
-
void write(byte[] b, int off, int len)
-
作用: 将字节数组 b 中从偏移量 off 开始的 len 个字节写入输出流
OutputStream output = new FileOutputStream("example.txt"); byte[] data = {72, 101, 108, 108, 111}; // "Hello" 的字节表示 output.write(data, 1, 3); // 写入 "ell" output.close();
-
-
void flush()
-
作用: 刷新输出流,强制将缓冲区中的数据写入目标
-
注意: 某些输出流(如 BufferedOutputStream)会将数据缓存在内存中,调用 flush() 可以确保数据立即写入目标
OutputStream output = new BufferedOutputStream(new FileOutputStream("example.txt")); output.write(65); // 写入字节 'A' output.flush(); // 强制刷新缓冲区 output.close();
-
常用实现子类
FileOutputStream: 用于将字节数据写入文件BufferedOutputStream: 提供缓冲功能,提高写入效率ObjectOutputStream: 用于写入对象(序列化)PrintStream: 提供方便的打印方法(如print()和println())

浙公网安备 33010602011771号