web-dev-qa-db-ja.com

System.out.println()とSystem.err.println()の違い

JavaのSystem.out.println()System.err.println()の違いは何ですか?

45
user354299

In Java System.out.println()_は、使用しているシステムの標準に出力されます。一方、System.err.println()は標準エラーに出力されます。

単純なJavaコンソールアプリケーションを使用している場合、両方の出力は同じ(コマンドラインまたはコンソール)になりますが、たとえばSystem.outは引き続きコンソールに出力されますが、System.errはファイルに書き込みます。

また、EclipseのようなIDEはSystem.err赤いテキストとSystem.outデフォルトでは黒いテキストで。

62
Carlos G.

System.outは「標準出力」(stdout)であり、System.errは「エラー出力」(stderr)です。 System.in(stdin)と共に、これらはUnixモデルの3つの標準I/Oストリームです。最新のプログラミング環境(C、Perlなど)のほとんどは、このモデルをサポートしています。

標準出力ストリームは、プログラムの「通常の操作」からの出力を印刷するために使用され、エラーストリームは「エラーメッセージ」用です。これらは分離する必要がありますが、ほとんどの場合、同じコンソールに表示されます。

電話番号を入力し、その番号を持っている人を印刷する簡単なプログラムがあるとします。無効な番号を入力した場合、プログラムはそのエラーを通知する必要がありますが、それを行うべきではありません回答として:「999-ABC-4567」を入力して、プログラムがエラーを出力した場合「有効な番号ではありません」というメッセージは、「有効な番号ではありません」という名前の人物がいることを意味するものではありません。番号は999-ABC-4567です。そのため、標準出力には何も出力されず、エラー出力には「無効な番号です」というメッセージが出力されます。

27
Paul Richter

これらのコマンドは異なる出力ストリームを使用します。デフォルトでは、両方のメッセージがコンソールに出力されますが、たとえば、これらのメッセージの一方または両方をファイルにリダイレクトできます。

Java MyApp 2>errors.txt

これにより、System.errからerrors.txtファイル。

4

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

2
onurbaysan

この答えはおそらくあなたを助けるでしょう。それはとても簡単ですSystem.errSystem.out両方が同じSystemクラスでPrintStreamクラスの参照変数としてpublic final static PrintStream out = null;public final static PrintStream err = null;として定義されている

両方がrefであることを意味します。 PrintStreamクラスの変数。通常、System.errは、エラーメッセージを出力するために使用され、プログラマーのredabilityを向上させます。

Redirection演算子を使用している場合、両方に小さな違いがあります。

1
ATIQ UR REHMAN

System.out.println("wassup");は、ユーザーが指定した適切な入力に関する特定の結果を出力する必要がある場合を指しますが、System.err.println("duh, that's wrong);は、入力が間違っているか他のエラーがあることを示す参照です。

ほとんどのIDEは、これを赤色(System.err.print)。

0
Arth Tyagi