Java 在不结束程序的情况下写入外部文件

Java 在不结束程序的情况下写入外部文件,java,printwriter,Java,Printwriter,我有一个程序只能通过按Ctrl+C来终止。在此程序中,我使用以下命令写入外部文件: File logFile = new File("output.txt"); PrintWriter log_file_writer = new PrintWriter(logFile); log_file_writer.println("TEXT"); log_file_writer.close(); 但是,由于我不知道程序何时终止,因此无法使用以下方法关闭文件: File logFile = new Fi

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

File logFile = new File("output.txt");
PrintWriter log_file_writer = new PrintWriter(logFile);
log_file_writer.println("TEXT");
log_file_writer.close();
但是,由于我不知道程序何时终止,因此无法使用以下方法关闭文件:

File logFile = new File("output.txt");
PrintWriter log_file_writer = new PrintWriter(logFile);
log_file_writer.println("TEXT");
log_file_writer.close();
我认为这会导致输出文件中没有文本出现

有人能想出解决办法吗

谢谢你的帮助

log_file_writer.flush();
将内容推送到磁盘


将内容推送到磁盘

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

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

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

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

PrintWriter log_file_writer = new PrintWriter(new FileOutputStream("output.txt"),true);
但是您也可以使用
log_file_writer.flush()

如下所示:

PrintWriter(文件文件)
使用指定的文件创建新的PrintWriter,无需自动换行

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

log_file_writer.flush();
作为:

PrintWriter(文件文件)
使用指定的文件创建新的PrintWriter,无需自动换行

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

log_file_writer.flush();

flush
PrintWriter
flush
PrintWriter
?谢谢Djon。是的,每次写完信我都会“脸红”。谢谢你。是的,每次写完后我都在“冲洗”,没问题。我希望有帮助:)没问题。我希望有帮助:)