黑马程序员技术交流社区
标题:
close(),fush()的区别
[打印本页]
作者:
HeiMa-黄倲江
时间:
2012-11-3 01:17
标题:
close(),fush()的区别
本帖最后由 qq84995227 于 2012-11-3 14:27 编辑
public static void main(String[] args) {
FileWriter fw = null;
BufferedWriter bf = null;
try {
fw = new FileWriter("D:\\myWord\\maxTest\\src\\cn\\maxdemo.txt");
//为了提高写入流的技术,而加入了缓冲技术BufferWriter
bf = new BufferedWriter(fw);
//写入数据
bf.write("adasdada");
//newLine()的方法是跨平台换行
bf.newLine();
bf.write("ffff");
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fw != null){
try {
//只要用到缓冲技术BufferWriter 就一定要刷新
bf.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
}
}
1.我知道fw.colose()的时候已经调用fw.fush()刷新一次之后才关闭
2.那为什么加入
缓冲技术之
后. 这里我就有点蒙了.
BF.FUSH(),跟BF.CLOSE() 这2个有什么区别呢..
作者:
张忠豹
时间:
2012-11-3 10:13
flush是将缓冲区里面的内容释放掉
close()会先flush一下,缓冲区里的内容,然后再关闭掉流!
如果在使用缓冲的时候不使用flush,那么在关闭流的一瞬间,你才能获取到数据。
有时候这是不允许的。(比如,一个用户发送请求,希望服务端返回相关的网页,你要是利用缓冲流中的flush,每时每刻,应该页面上都会加载一些数据。
而你不适用缓冲,不flush,那么在你等待好久,页面上才突然间显示一堆数据,严重影响用户体验。那么你做的网站,就绝对是个下下品)
作者:
HeiMa-黄倲江
时间:
2012-11-3 14:27
张忠豹 发表于 2012-11-3 10:13
flush是将缓冲区里面的内容释放掉
close()会先flush一下,缓冲区里的内容,然后再关闭掉流!
如果在使用缓 ...
谢谢.明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2