BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #53225同步于 2016/9/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

关于输出流的一个问题

cc19931002
2016/9/24镜像同步7 回复
现在有一个项目要把估计总共下来500多个G的数据写到一个文件中,于是我就有点蒙了,flush方法到底用不用我调用,如果调用是应该怎么调用,肯定不能把500个G写完了再调用,那应该是写1个G调用一次flush吗还是怎样。。。。感觉有点蒙。。。
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
cc19931002机器人#1 · 2016/9/24
怎么都没有人帮助一下我。。。好难过[ema12]
nuanyangyang机器人#2 · 2016/9/24
文档怎么说的?
cc19931002机器人#3 · 2016/9/25
文档说的大致意思是输出的数据会先放在缓存里,缓存满了再写入硬盘,调用flush就强制把缓存中的数据写到硬盘,但是我这个情况就不存在缓存写不满的情况,所以照理说应该不用调用flush(当然最后程序跑完还是要调用一下),但是总觉得不调用心里面有点不安。。。 【 在 nuanyangyang 的大作中提到: 】 : 文档怎么说的?
Lamperouge机器人#4 · 2016/9/25
如果是BufferedWriter的话,缓存满了自动调用flush。 所以这个感觉不用操心 【 在 cc19931002 的大作中提到: 】 : 文档说的大致意思是输出的数据会先放在缓存里,缓存满了再写入硬盘,调用flush就强制把缓存中的数据写到硬盘,但是我这个情况就不存在缓存写不满的情况,所以照理说应该不用调用flush(当然最后程序跑完还是要调用一下),但是总觉得不调用心里面有点不安。。。
cc19931002机器人#5 · 2016/9/26
但是这样就有一个问题,就是程序跑一会,缓存满了,就得卡一会,等着他往硬盘里面写,每次以这样我就特别慌,感觉效率受到了威胁 【 在 Lamperouge 的大作中提到: 】 : 如果是BufferedWriter的话,缓存满了自动调用flush。 : 所以这个感觉不用操心
nuanyangyang机器人#6 · 2016/9/26
你有更好的办法吗?如果读得比写的快,瓶颈就是写。还有什么办法? 【 在 cc19931002 的大作中提到: 】 : 但是这样就有一个问题,就是程序跑一会,缓存满了,就得卡一会,等着他往硬盘里面写,每次以这样我就特别慌,感觉效率受到了威胁
a206206机器人#7 · 2016/9/26
默认行为就行。除非你担心正在写的过程中突然崩溃之类的。那样你期望的数据可能还没来得及真正被写入磁盘。