JavaのSystem.out.println()
とSystem.err.println()
の違いは何ですか?
In Java System.out.println()
_は、使用しているシステムの標準に出力されます。一方、System.err.println()
は標準エラーに出力されます。
単純なJavaコンソールアプリケーションを使用している場合、両方の出力は同じ(コマンドラインまたはコンソール)になりますが、たとえばSystem.out
は引き続きコンソールに出力されますが、System.err
はファイルに書き込みます。
また、EclipseのようなIDEはSystem.err
赤いテキストとSystem.out
デフォルトでは黒いテキストで。
System.outは「標準出力」(stdout)であり、System.errは「エラー出力」(stderr)です。 System.in(stdin)と共に、これらはUnixモデルの3つの標準I/Oストリームです。最新のプログラミング環境(C、Perlなど)のほとんどは、このモデルをサポートしています。
標準出力ストリームは、プログラムの「通常の操作」からの出力を印刷するために使用され、エラーストリームは「エラーメッセージ」用です。これらは分離する必要がありますが、ほとんどの場合、同じコンソールに表示されます。
電話番号を入力し、その番号を持っている人を印刷する簡単なプログラムがあるとします。無効な番号を入力した場合、プログラムはそのエラーを通知する必要がありますが、それを行うべきではありません回答として:「999-ABC-4567」を入力して、プログラムがエラーを出力した場合「有効な番号ではありません」というメッセージは、「有効な番号ではありません」という名前の人物がいることを意味するものではありません。番号は999-ABC-4567です。そのため、標準出力には何も出力されず、エラー出力には「無効な番号です」というメッセージが出力されます。
これらのコマンドは異なる出力ストリームを使用します。デフォルトでは、両方のメッセージがコンソールに出力されますが、たとえば、これらのメッセージの一方または両方をファイルにリダイレクトできます。
Java MyApp 2>errors.txt
これにより、System.err
からerrors.txt
ファイル。
System.out
の主な目的は、標準出力を提供することです。
System.err
の主な目的は、標準エラーを提供することです。
これを見て
http://www.devx.com/tips/Tip/14698
http://wiki.Eclipse.org/FAQ_Where_does_System.out_and_System.err_output_go%3F
この答えはおそらくあなたを助けるでしょう。それはとても簡単ですSystem.err
とSystem.out
両方が同じSystem
クラスでPrintStream
クラスの参照変数としてpublic final static PrintStream out = null;
とpublic final static PrintStream err = null;
として定義されている
両方がrefであることを意味します。 PrintStream
クラスの変数。通常、System.err
は、エラーメッセージを出力するために使用され、プログラマーのredabilityを向上させます。
Redirection演算子を使用している場合、両方に小さな違いがあります。
System.out.println("wassup");
は、ユーザーが指定した適切な入力に関する特定の結果を出力する必要がある場合を指しますが、System.err.println("duh, that's wrong);
は、入力が間違っているか他のエラーがあることを示す参照です。
ほとんどのIDEは、これを赤色(System.err.print
)。