2

Java では、テキスト ファイルに書き込むためにSystem.out:をリダイレクトしました。System.setOut("someText.txt");このプログラムを 1 時間に 1 回実行し、各印刷ステートメントのセットをファイルの末尾に追加したいと考えています。たとえば、1 時間目に私のプログラムが実行され、「Hello\n」と出力されて終了するとします。その後、2 時間目にプログラムが実行され、"hello again\n" と出力されて終了します。

これが発生した場合、テキストファイルの内容を次のようにしたいと思います。

Hello
Hello again

現在、テキストファイルを上書きしているだけです。

  1. このリダイレクトされた printStream をテキスト ファイルの末尾に追加するにはどうすればよいですか?

編集どうすればコンソールにも出力できますか?

4

4 に答える 4

6

FileOutputStream をビルドするときは、次を使用します。

FileOutputStream(ファイル file, boolean append)

指定された File オブジェクトによって表されるファイルに書き込むファイル出力ストリームを作成します。

ジャバドックから

コード例:

OutputStream outStream = new FileOutputStream("file1.txt",true);
于 2013-01-28T21:00:05.883 に答える
2

使用する

OutputStream printStream = new OutputStream(new FileOutputStream("someText.txt", true));
System.setOut(printStream);
于 2013-01-28T21:01:38.087 に答える
1

@Frank と @Petr Mensik の回答は正しいです。ただし、別のことを試してみたい場合に備えて:

System.out.append("Hello World\n")トリックを行う必要があります。したがって、 を実行する代わりにSystem.out.printSystem.out.append

于 2013-01-28T21:03:47.780 に答える
0

最も簡単な答えは、Java コードを使用してこれを行うのではなく、tee;を使用することです。Java で再実装しようとすることteeは、四角い車輪を再発明することです。これを行うだけです:

java -jar yourapp.jar | tee -a output.log

Windowsでは?MinGW や Cygwin をインストールします。:-)

于 2013-02-04T02:43:15.377 に答える