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();
在你的写作和阅读之间。
所以,我正在尝试制作一个程序,它可以仅使用 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();
在你的写作和阅读之间。