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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© HeiMa-黄倲江 中级黑马   /  2012-11-3 01:17  /  1554 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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个有什么区别呢..

评分

参与人数 1技术分 +1 收起 理由
杨千里 + 1 鼓励一下,多看看毕老师的视频.

查看全部评分

2 个回复

倒序浏览
flush是将缓冲区里面的内容释放掉
close()会先flush一下,缓冲区里的内容,然后再关闭掉流!
如果在使用缓冲的时候不使用flush,那么在关闭流的一瞬间,你才能获取到数据。
有时候这是不允许的。(比如,一个用户发送请求,希望服务端返回相关的网页,你要是利用缓冲流中的flush,每时每刻,应该页面上都会加载一些数据。
而你不适用缓冲,不flush,那么在你等待好久,页面上才突然间显示一堆数据,严重影响用户体验。那么你做的网站,就绝对是个下下品)

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 赞一个!

查看全部评分

回复 使用道具 举报
张忠豹 发表于 2012-11-3 10:13
flush是将缓冲区里面的内容释放掉
close()会先flush一下,缓冲区里的内容,然后再关闭掉流!
如果在使用缓 ...

谢谢.明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马