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();
}
之间有什么区别么?例如效率、文件大小上,谢谢! 展开
while ((line1 = br1.readLine()) != null) {
bw.write(line1);
}
bw.flush();
这里如果改成每次flush(),即:
while ((line1 = br1.readLine()) != null) {
bw.write(line1);
bw.flush();
}
之间有什么区别么?例如效率、文件大小上,谢谢! 展开
4个回答
展开全部
区别是有的:
1、效率上考虑:
第一种方法要高很多,因为.flush();在起作用,他的具体作用其他人都说的很好了。
2、大小上:
这个不会有任何的区别,反正就这么大的文件,怎么读写都是这些。
3、安全上:
推荐第二种,第二种每读取一行,就写入文件中一行,所以当程序意外终止(不如停电等),那么读取的数据也会被保存。而第一种就不会保存了(除了系统自动保存的,那样不一定什么时候保存,随系统不同而不同)。而且采用第二种方法,如果你愿意,你可以加入一个文件续传功能,就是可以继续的传输数据,而不用重新的在全部读取,写入,只需要找到已经写入的写入点,然后在那之后读取写入即可~~~
为了达到效率与安全的双方面考虑,可以试试在while中加入每10次或N次,就执行一次flush();方法。
1、效率上考虑:
第一种方法要高很多,因为.flush();在起作用,他的具体作用其他人都说的很好了。
2、大小上:
这个不会有任何的区别,反正就这么大的文件,怎么读写都是这些。
3、安全上:
推荐第二种,第二种每读取一行,就写入文件中一行,所以当程序意外终止(不如停电等),那么读取的数据也会被保存。而第一种就不会保存了(除了系统自动保存的,那样不一定什么时候保存,随系统不同而不同)。而且采用第二种方法,如果你愿意,你可以加入一个文件续传功能,就是可以继续的传输数据,而不用重新的在全部读取,写入,只需要找到已经写入的写入点,然后在那之后读取写入即可~~~
为了达到效率与安全的双方面考虑,可以试试在while中加入每10次或N次,就执行一次flush();方法。
展开全部
缓冲区满了会自动往外写,同时flush(),不用每次自己手动执行,循环完最后的flush()是强制把缓冲区最后的数据往外写,因为这个时候可能缓冲区还有数据,但不满,不会自动写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
flush的作用,就是把所有在内存中排队的内容都强制写入到文件中
强制写文件,建议最后写一次就可以了,如果每写一句都运行这个
会增加程序运行时间,对效率有影响
强制写文件,建议最后写一次就可以了,如果每写一句都运行这个
会增加程序运行时间,对效率有影响
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然有区别了,如果你的文件很长,行数很多,如果你用下面的方法时,这样你的循环就会每读一行就会刷新一次,这样很耗资源的,而是用上一个方法,程序只会在循环结束之后,及文件读取完毕后才会刷新,从效率上你也会看出谁的性能高了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询