Java:FileReader和FileWriter不能一起使用

时间:2018-09-13 16:03:28

标签: java filereader filewriter

因此,我试图制作一个仅使用FileWriter和FileReader即可编写然后读取完全相同的文本文件的程序,但是由于某些原因,当我将这两个类都放在同一代码中时,FileWriter可以正常工作,但FileReader却没有,我得到的输出为空。

import java.io.*;
import java.util.Scanner;
public class ex2 {
    public static void main(String[] args) {
        File file = new File("C:\\a.txt");
        Scanner scanner = new Scanner(System.in);
        try {
            FileReader reader = new FileReader(file);
            FileWriter writer = new FileWriter(file);
            writer.write(scanner.nextLine());
            int ch;
            while ((ch = reader.read()) != -1) {
                System.out.println((char)ch);
            }
            scanner.close();
            reader.close();
            writer.close();
        } catch (Exception e) {

        }

    }
}

这就是我在说的代码。我可以将任何内容写入a.txt,但阅读器似乎无法读取内容。奇怪的是,如果我使用完全相同的代码,但没有文件编写部分,则FileReader可以正常工作。我究竟做错了什么?预先感谢!

1 个答案:

答案 0 :(得分:2)

FileWriter对象被缓冲。这意味着一旦您致电write,他们就不会写您给他们的所有东西。他们将等到要写入一定数量后再一次写入所有内容。只需添加以下行:

writer.flush();

介于写作和阅读之间。