今日、同僚が System.err と System.out を使用するときにいくつかの小さな問題に遭遇しました。
いくつかの情報を読んだ後、次のことを要約しました:
1 2 つの説明:
out: " 出力ストリーム。このストリームは開いており、出力データを受け入れる準備ができています。通常、このストリームは、モニター出力、またはホスト環境またはユーザーによって指定された別の出力先に対応します。
err: 「標準」エラー出力ストリーム。このストリームは開いており、出力データを受け入れる準備ができています。通常、このストリームは、モニター出力、またはホスト環境またはユーザーによって指定された別の出力先に対応します。慣例により、この出力ストリームは、ユーザー出力ストリーム (変数 out
の値) が通常監視されていないファイルや他の宛先にリダイレクトされた場合でも、エラー メッセージやユーザーの注意を即座に示す必要があるその他の情報を表示するために使用されます。継続的に。
2.out と err. の違いの 1 つは、out はキャッシュされることが多いのに対し、err はキャッシュされないことです (デフォルト設定、変更可能)。したがって、標準エラーを使用して何かを出力すると、すぐに画面に表示されますが、標準出力で出力されるものは、まとめて出力するのにさらに数文字かかる場合があります。アプリケーションで標準出力と標準エラーを混在させる場合、この問題が発生する可能性があります。
テストコード:
public class Test2 {static{ System.out.println("1"); }public static void main(String[] args) { System.err.println("2");new Test2(); }public Test2() { System.out.println("3"); } }
テスト結果:1と3の位置は比較的変化せず、2の位置はランダムに現れるようにしてください!
3.log4jロギングが有効な場合。 used、System .err はログに記録されますが、System.out は記録されません
ps: Eclipse では System.err が赤で表示されます。 System.out は青色です。
以上がSystem.err および System.out を使用するいくつかの問題。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。