2

重複の可能性:
Java 出力をファイルに出力する

Javaプログラムには、ステータスの更新をコンソールに出力するための多数のprintlnステートメントを持つ長いメソッドがあります(質問には重要ではないため、投稿することは重要ではないと思います)。

これらをコンソールに出力する代わりに、txt ファイルに保存して後で確認できるようにしたいと考えています。

各 println ステートメントを手動で実行せずに出力をリダイレクトする簡単な方法はありますか?

そうでない場合、これについて最善の方法は何ですか?

4

3 に答える 3

11

私は以前にこれをしなければなりませんでした.それはあまりきれいではありません.コードの最後の部分のためにあなたがそれをしていないことを願っています.

PrintStream ps = new PrintStream("\file.txt");
PrintStream orig = System.out;
System.setOut(ps);
//TODO: stuff with System.out.println("some output");
System.setOut(orig);
ps.close();
于 2013-01-27T21:26:05.307 に答える
4

System クラスには静的メソッド がありSystem.setOut(PrintStream out)ます。ファイルに書き込む独自の PrintStream を作成し、それをこのメソッドに詰め込むだけで準備完了です。

脆弱性の低いソリューション: System.out.printFoo(...) を使用せずに、代わりにロガーを使用し、その時点での目的に合わせてログ レベルを変更します。

于 2013-01-27T21:26:47.130 に答える
1
  1. メソッドに余分なパラメーターを追加する, PrintStream out
  2. メソッド内で検索&置換System.outoutます。
  3. 終わり。
  4. (FileOutputStream にラップされた PrintStream を使用してメソッドを呼び出します)
于 2013-01-27T21:19:54.343 に答える