首先看一个BufferedOutputStream
可以这么理解,BufferedOutputStream类就是对FileInputStream类的加强。它是一个加强流。为什么成为加强流?就是因为这个加强流在进行输出时会在内存中开辟一块缓冲区。因为缓冲区在内存中的读写速度很快,以此来达到提升输出流的效率
参考:缓冲流帮助理解
看一下BufferedOutputStream的构造方法
//构造方法,从构造方法可以看出它需要一个底层输出流。
BufferedOutputStream(OutputStream out); //创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream(OutputStream out,int size); //创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
创建BufferedOutputStream对象的方法
方法一:
File file = new File("D:\\www\\abc.txt");
OutputStream out = new FileOutputStream(file);
BufferedOutputStream buffer = new BufferedOutputStream(out);
注:方法一的创建比较麻烦,因此不怎么使用,但是这种创建方法可以让我们清晰的看出字节缓冲输出流的一个流向,它是怎么输出文件中的。
方法二:
OutputStream buffer = new BufferedOutputStream(new FileOutputStream("D:\\www\\abc.txt"));
//方法二的创建过程比较简洁,使用比较多
创建了对象后我们看一下怎么使用吧
import java.io.*;
public class Text {
public static void main(String[] args) throws Exception{
//创建BufferedOutputStream字节缓冲输出流
OutputStream buffer = new BufferedOutputStream(new FileOutputStream("D:\\www\\abc.txt"));
buffer.write(97);
byte[] bytes = {97,98,99};
buffer.write(bytes);
buffer.write(bytes,1,2);
buffer.write("我爱中国".getBytes());
buffer.write("\r\n".getBytes());
buffer.write("Java".getBytes());
buffer.flush(); //刷新缓冲输出流
buffer.close(); //关闭流(默认会刷新)
}
/*
输出结果:
aabcbc我爱中国
Java
*/
}
缓冲字节输出流的使用比较简单,使用方法和普通的字节输出流使用方式一致。