java文件操作

请问使用BufferWriter输出文件时,例如:while((line1=br1.readLine())!=null){bw.write(line1);}bw.flus... 请问使用BufferWriter输出文件时,例如:
while ((line1 = br1.readLine()) != null) {
bw.write(line1);
}
bw.flush();
这里如果改成每次flush(),即:
while ((line1 = br1.readLine()) != null) {
bw.write(line1);
bw.flush();
}
之间有什么区别么?例如效率、文件大小上,谢谢!
展开
 我来答
百度网友90999d9
2010-09-09 · TA获得超过485个赞
知道小有建树答主
回答量:172
采纳率:100%
帮助的人:183万
展开全部
区别是有的:
1、效率上考虑:
第一种方法要高很多,因为.flush();在起作用,他的具体作用其他人都说的很好了。

2、大小上:
这个不会有任何的区别,反正就这么大的文件,怎么读写都是这些。

3、安全上:
推荐第二种,第二种每读取一行,就写入文件中一行,所以当程序意外终止(不如停电等),那么读取的数据也会被保存。而第一种就不会保存了(除了系统自动保存的,那样不一定什么时候保存,随系统不同而不同)。而且采用第二种方法,如果你愿意,你可以加入一个文件续传功能,就是可以继续的传输数据,而不用重新的在全部读取,写入,只需要找到已经写入的写入点,然后在那之后读取写入即可~~~

为了达到效率与安全的双方面考虑,可以试试在while中加入每10次或N次,就执行一次flush();方法。
司梓韩馀Y2
2010-09-09 · TA获得超过158个赞
知道答主
回答量:153
采纳率:0%
帮助的人:154万
展开全部
缓冲区满了会自动往外写,同时flush(),不用每次自己手动执行,循环完最后的flush()是强制把缓冲区最后的数据往外写,因为这个时候可能缓冲区还有数据,但不满,不会自动写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
StarPlatinmu
2010-09-09 · 超过33用户采纳过TA的回答
知道答主
回答量:125
采纳率:0%
帮助的人:99.5万
展开全部
flush的作用,就是把所有在内存中排队的内容都强制写入到文件中
强制写文件,建议最后写一次就可以了,如果每写一句都运行这个
会增加程序运行时间,对效率有影响
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d704ca4
2010-09-09 · 超过13用户采纳过TA的回答
知道答主
回答量:36
采纳率:0%
帮助的人:0
展开全部
当然有区别了,如果你的文件很长,行数很多,如果你用下面的方法时,这样你的循环就会每读一行就会刷新一次,这样很耗资源的,而是用上一个方法,程序只会在循环结束之后,及文件读取完毕后才会刷新,从效率上你也会看出谁的性能高了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式