BufferedWriter 在刷新和关闭后不写入文件
BufferedWriter does not write to file after flush and close
我有以下示例应用程序,我在其中写入文件并在关闭编写器后立即尝试从文件中读取,但令我惊讶的是没有任何内容写入文件。
我已确保在读取文件之前调用了 flush() 和 close() 方法,但即使这样也无济于事。
谁能帮我理解为什么下面的代码不起作用。
public class TestWrite_Read {
private File file;
private Writer writer;
public TestWrite_Read() {
file = new File("E:\temp\test.txt");
try {
writer = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
new TestWrite_Read().write();
new TestWrite_Read().read();
}
private void read() throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(file));
System.out.println("reader.readLine() = " + reader.readLine());
reader.close();
}
private void write() throws Exception {
writer.write(String.valueOf(104));
writer.flush();
writer.close();
}}
每次您创建一个新的 TestWrite_Read()
您打开文件进行输出,这会清空它。
不要那样做。如果你只想从文件中读取,不要先打开它进行 output。
我有以下示例应用程序,我在其中写入文件并在关闭编写器后立即尝试从文件中读取,但令我惊讶的是没有任何内容写入文件。
我已确保在读取文件之前调用了 flush() 和 close() 方法,但即使这样也无济于事。
谁能帮我理解为什么下面的代码不起作用。
public class TestWrite_Read {
private File file;
private Writer writer;
public TestWrite_Read() {
file = new File("E:\temp\test.txt");
try {
writer = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
new TestWrite_Read().write();
new TestWrite_Read().read();
}
private void read() throws Exception {
BufferedReader reader = new BufferedReader(new FileReader(file));
System.out.println("reader.readLine() = " + reader.readLine());
reader.close();
}
private void write() throws Exception {
writer.write(String.valueOf(104));
writer.flush();
writer.close();
}}
每次您创建一个新的 TestWrite_Read()
您打开文件进行输出,这会清空它。
不要那样做。如果你只想从文件中读取,不要先打开它进行 output。