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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zfgrinm 中级黑马   /  2015-3-9 22:29  /  1114 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

是只有BufferedWriter中的write(String s)后面需要刷新flush()的吗,其他的输出流是不是都可以不用写flush(),只用close()就可以了?不太确定哪些地方必须的用flush(),求大神总结一下..

3 个回复

正序浏览
艺多不压身丶 发表于 2015-3-9 22:32
fw.flush();  刷新缓冲区,将缓冲区中的数据刷到目的地文件中。
缓冲区、缓冲区、缓冲区、缓冲区、缓冲区、 ...

谢了啊,明白了
回复 使用道具 举报
当要输出的数据非常大(比如向硬盘保存一个mkv格式的高清电影),动辄8.1个G,比内存还大,这样就必须用flush()方法把数据一块一块的存到硬盘,如果不用flush()方法,会导致内存溢出,根本无法完成目的。总之就是大量数据的输出必须用flush()分批存到硬盘。
回复 使用道具 举报
fw.flush();  刷新缓冲区,将缓冲区中的数据刷到目的地文件中。
缓冲区、缓冲区、缓冲区、缓冲区、缓冲区、缓冲区、缓冲区、缓冲区、
                            用到缓冲区就需要刷新,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马