黑马程序员技术交流社区
标题:
很多人不理解的BufferedWriter
[打印本页]
作者:
ljhheima
时间:
2012-11-25 00:02
标题:
很多人不理解的BufferedWriter
FileWriter中有两个函数
close:关闭流
flush:刷新流。
当我们调用write方法时,如果没有调用close或者flush,我们操作的文件很可能没有我们想写入的数据。
这很明显地说明了FileWriter中有一个缓冲区。尤其flush函数,完全暴露了缓冲区的存在。
那BufferedWriter有什么作用?视频教程中没有说明。
这首先要知道FileWriter调用write方法时,它需要将写入的字符以给定的字符集编码为字节,再写进文件。
写进文件前需要一个缓冲区,保存我们要写进的字节,直到我们调用close或者flush时,才将缓冲区的数据存进硬盘,
减少硬盘的读写,提高效率。这缓冲区就是FileWriter的缓冲区。
BufferedWriter:
将写入的字符以给定的字符集编码为字节,需要调用编码转换器,如果我们设一个缓冲区保存要转换的字符,那可以减少
对编码转换器的调用。就是提高效率。这个缓冲区就是BufferedWriter的缓冲区。
BufferedWriter是后期对FileWriter性能的增强,利用装饰设计模式,传入FileWriter对象,增强FileWriter的性能。
作者:
许庭洲
时间:
2012-11-25 07:43
值得学习ing!
作者:
郝少普
时间:
2012-11-26 22:41
那我问你
1.BufferedInputStream 与 FilterInputStream 的不同,后者有没有缓冲区?
2.flush()的方法从哪来?给谁用, FilterInputStream 有没有flush()方法,在这有什么用?
作者:
ljhheima
时间:
2012-11-27 09:38
大哥,我是卢嘉鸿,这我也不懂啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2