| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
买学问 - 大牛一对一辅导,有问必答买学问 - 专业的付费知识问答平台
共有 359 人关注过本帖
标题:IO输入流中利用BufferedReader(缓存读取)以及BufferedWriter(缓存写入) ...
只看楼主 加入收藏
mudi
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-12-19
结帖率:100%
  已结贴   问题点数:10  回复次数:2   
IO输入流中利用BufferedReader(缓存读取)以及BufferedWriter(缓存写入)进行文本复制 的问题
程序代码:
以下红色部分的问题能否有前辈可以指点下问题原因呢?非常感谢~~
@Test
    public void testBufferedReader() {
        BufferedReader br = null;
        BufferedWriter wr = null;
        try {
            File file = new File("file.txt");
            File file3 = new File("file3.txt");
            FileReader fr = new FileReader(file);
            FileWriter fw = new FileWriter(file3);
            br = new BufferedReader(fr);
            wr = new BufferedWriter(fw);
           

            String str;
            while((str = br.readLine()) != null) {
                wr.write(str);
                /*wr.flush();*///问题点:当我不添加wr.flush();语句时,程序就不能把file.txt中的内容复制到file3.txt当中;
            }
           

        } catch (IOException e) {
            e.printStackTrace();
        }finally {
       

        try {
            br.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        }
    }
2019-01-09 18:02
幻紫灵心
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:山咔咔里面
等 级:版主
威 望:44
帖 子:369
专家分:2423
注 册:2018-3-30
  得分:10 
BufferedWriter是带缓冲区的,你写了之后是先存在缓冲区里面,缓冲区满的时候再一次性写入输出流的。
你在函数最后flush一下就好。

saber,别哭.
2019-01-09 18:31
mudi
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2018-12-19
  得分:0 
回复 2楼 幻紫灵心
flush是清空缓存的操作,把前面的清楚之后才能再次写入。感谢!!
2019-01-09 19:45







关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.027404 second(s), 9 queries.
Copyright©2004-2019, BCCN.NET, All Rights Reserved