2012-03-10 7 views

答えて

5

絶対に - System.outSystem.errは、標準の出力エラーと標準エラーに関連する値のちょうどPrintStreamです。

OutputStreamからPrintStreamを作成するか、ファイル名を指定するだけです。ただし、常にシステムのデフォルトのエンコーディングが使用されます。

好ましくはPrintWriterです。これは任意のWriterをラップします。しかし、これはまだを抑制するIOExceptionがスローされることはありません。それは私には良い考えではありません。

BufferedWriterを好む:

BufferedWriter wrapper = new BufferedWriter(writer); 
try { 
    wrapper.write(...); 
    wrapper.newLine(); 
} finally { 
    wrapper.close(); 
} 
1

Systemクラスにはしない "参照のPrintStreamクラス"。 PrintStream型の2つの静的フィールド:outerrがあります。したがって、アウトストリームに書き込む場合は、System.outを使用します。エラーストリームに書き込む場合は、System.errを使用します。別のPrintStreamに書きたい場合は、自分で構成します:new PrintStream(...)

+0

-1。あなたの心を作りなさい。 PrintStreamクラスを参照していないか、*その型の静的変数が2つあります。あなたはそれを両方向に持つことはできません。 – EJP

+0

"クラスの参照"は何も意味しません。与えられた型の静的フィールドを持つことは何かを意味します。 –

+0

他のクラスへの参照は、クラスローダーがクラスをロードするときに解決するものです。私はこれが無意味であるとは思わない。 – EJP

関連する問題