10.4.4 BufferedInputStream/BufferedOutputStream类
缓冲字节流(BufferedInputStream/BufferedOutputStream)是处理流,它们可以对其他流进行“装饰”,增加缓冲功能,提升读写性能。
创建BufferedInputStream时,会创建一个默认大小为8192字节的内部缓冲区,在执行BufferedInputStream的read()操作时,会从磁盘读入一组字节,将这组字节保存在内部缓冲区中,然后从内部缓冲区中逐个读取字节。这样就大大减少了磁盘操作,提高读取效率。
创建 BufferedOutputStream时,会创建一个默认大小为8192字节的内部缓冲区,在执行BufferedOutputStream的write()操作时,先将字节写入内部缓冲区而不是直接写到磁盘,当缓冲区被写满或者关闭流对象,整个缓冲区的数据将被写入磁盘。这样就大大减少了与磁盘的交互,提高了效率。
【例 10.9】下面通过程序对比FileInputStream/FileOutputStream与BufferedInputStream/BufferedOutputStream拷贝文件的效率。

(https://www.daowen.com)



图10.9 运行结果
运行结果如图10.9所示。