Java: FileReader 和 FileWriter 不能一起工作

Java: FileReader and FileWriter not working together

所以,我正在尝试制作一个程序,它可以仅使用 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 写入任何内容,但 reader 似乎无法读取任何内容。奇怪的是,如果我使用完全相同的代码但没有文件写入部分,FileReader 会正常工作。我究竟做错了什么?提前致谢!

FileWriter 个对象被缓冲。这意味着他们不会在您致电 write 后立即写下您给他们的所有内容。他们会等到有一定数量可以写,然后一次写完。只需添加这一行:

writer.flush();

在你的写作和阅读之间。