0

我有一个程序只能通过按来终止Ctrl + C。在这个程序中,我使用以下方法写入外部文件:

File logFile = new File("output.txt");
PrintWriter log_file_writer = new PrintWriter(logFile);
log_file_writer.println("TEXT");

但是,因为我不知道程序何时终止,所以我无法使用以下方法关闭文件:

log_file_writer.close();

我认为这导致输出文件中没有出现任何文本。

有人会为此提供解决方案吗?

感谢您的帮助。

4

3 回答 3

2
log_file_writer.flush();

将内容推送到磁盘

于 2013-06-06T08:19:38.787 回答
1

正如javadoc所说

PrintWriter(File file)使用指定的文件创建一个新的 PrintWriter,而不自动刷新行。

因此,您需要刷新实际缓冲的要打印的数据:

log_file_writer.flush();
于 2013-06-06T08:24:27.660 回答
0

您没有刷新内容,我总是使用该autoFlush参数,但它不适用于File

PrintWriter log_file_writer = new PrintWriter(new FileOutputStream("output.txt"),true);

但您也可以log_file_writer.flush();在每次写入后使用。

于 2013-06-06T08:22:09.653 回答