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 に答える