标题: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();
        }
        }
    }
搜索更多相关主题的帖子: 缓存 复制 File new txt 
2019-01-09 18:02
幻紫灵心
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:山咔咔里面
等 级:贵宾
威 望:53
帖 子:395
专家分:2640
注 册: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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492600-1-1.html




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

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