FileOutputStream 和 BufferedOutputStream
时间: 2023-11-27 19:46:36 浏览: 30
FileOutputStream和BufferedOutputStream都是Java IO包中的输出流类,用于将数据写入文件或其他输出目标。它们的区别在于是否使用缓冲区。
FileOutputStream是一个基本的字节流,它直接将数据写入文件或其他输出目标,没有缓冲区。因此,每次写入都会直接写入到目标中,效率较低。如果需要写入大量数据,可以使用BufferedOutputStream进行缓冲。
BufferedOutputStream是一个带有缓冲区的字节流,它可以将数据写入缓冲区,当缓冲区满时再一次性将数据写入目标中,这样可以减少写入次数,提高效率。同时,BufferedOutputStream还提供了flush()方法,可以强制将缓冲区中的数据写入目标中。
以下是两个类的使用示例:
1.使用FileOutputStream写入数据:
```java
try {
FileOutputStream fos = new FileOutputStream("demo.txt");
String str = "Hello World!";
byte[] bytes = str.getBytes();
fos.write(bytes);
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
```
2.使用BufferedOutputStream写入数据:
```java
try {
FileOutputStream fos = new FileOutputStream("demo.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
String str = "Hello World!";
byte[] bytes = str.getBytes();
bos.write(bytes);
bos.flush();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
```