A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 胡威 黑马帝   /  2012-2-15 17:24  /  1561 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

FileWriter的write()是把内容先写到流里面,然后flush(),BufferedWriter的write()是先把内容写到缓冲区内,然后再flush()
请问:存到缓冲区再刷进目标文件比存在流再刷进目标文件效率高在哪里?

4 个回复

倒序浏览
存在流刷的话,写一个刷一个,这样程序执行起来繁琐的多了啊,你写一个有要去刷一下,如果全部都写到缓冲区里面,全部在一起刷,这样不就快很多!比如你要搬很多东西,你是一件一件搬快,还是用一把推车全部放到推车里面去,一起推过去高效的多吧! 省了来回的多趟的跑。。。。。
回复 使用道具 举报
那就都写到流里一起刷呗 为什么要写一个刷一个?再问:FileReader的read()在读取时为什么就不是先放到流里去,然后在通过刷的方式返回读到的内容呢?
回复 使用道具 举报
你直接写进流里去,流的空间是比较小的。缓冲区有个构造方法:BufferedWriter(Writer out, int sz)  创建一个使用给定大小输出缓冲区的新缓冲字符输出流。你可以自定义缓冲区,一次性存放多一点,再刷到文件中。可以减少与文件的交互次数,提高效率
回复 使用道具 举报
以文件存储为例,硬盘存取的速度远远低于内存中的数据存取速度。为了减少对硬盘的存取,通常从文件中一次读取一定长度的数据,而写入时也是一次写入一定长度的数据,这可以增加文件存取的效率。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马