注册 登录
编程论坛 JAVA论坛

IO输入流中利用BufferedReader(缓存读取)以及BufferedWriter(缓存写入)进行文本复制 的问题

mudi 发布于 2019-01-09 18:02, 2145 次点击
程序代码:
以下红色部分的问题能否有前辈可以指点下问题原因呢?非常感谢~~
@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();
        }
        }
    }
2 回复
#2
幻紫灵心2019-01-09 18:31
BufferedWriter是带缓冲区的,你写了之后是先存在缓冲区里面,缓冲区满的时候再一次性写入输出流的。
你在函数最后flush一下就好。
#3
mudi2019-01-09 19:45
回复 2楼 幻紫灵心
flush是清空缓存的操作,把前面的清楚之后才能再次写入。感谢!!
1