FileWriter中有两个函数
close:关闭流
flush:刷新流。
当我们调用write方法时,如果没有调用close或者flush,我们操作的文件很可能没有我们想写入的数据。
这很明显地说明了FileWriter中有一个缓冲区。尤其flush函数,完全暴露了缓冲区的存在。
那BufferedWriter有什么作用?视频教程中没有说明。
这首先要知道FileWriter调用write方法时,它需要将写入的字符以给定的字符集编码为字节,再写进文件。
写进文件前需要一个缓冲区,保存我们要写进的字节,直到我们调用close或者flush时,才将缓冲区的数据存进硬盘,
减少硬盘的读写,提高效率。这缓冲区就是FileWriter的缓冲区。
BufferedWriter:
将写入的字符以给定的字符集编码为字节,需要调用编码转换器,如果我们设一个缓冲区保存要转换的字符,那可以减少
对编码转换器的调用。就是提高效率。这个缓冲区就是BufferedWriter的缓冲区。
BufferedWriter是后期对FileWriter性能的增强,利用装饰设计模式,传入FileWriter对象,增强FileWriter的性能。
|