7. Java IO: System.in, System.out, and System.error

1667 ワード

このチュートリアルのディレクトリを表示するには、「JavaIOチュートリアルディレクトリ貼り付け」をクリックします.
System.in,System.システムとErrの3つのストリームも一般的なデータソースまたはデータ宛先です.最も一般的な可能性はシステムを利用することである.outはデータをコンソールに出力した.この3つのストリームはjvmが起動したときにJavaランタイム環境によって初期化されるので、インスタンス化する必要はありません.(実行時に変更できますが)
System.in
System.inはInputStreamであり、コンソールプログラムの典型的なキーボード入力を受け入れるストリームである.データはプロファイルやコマンドラインパラメータを介してJavaプログラムに渡されることが多いため、あまり使用されません.GUIアプリケーションでは,プログラムの入力はGUIが提供する.これはJava IOから独立したinputメカニズムです.
System.out
System.outはPrintStreamです.それはよくあなたが書いたデータをコンソールに出力します.コマンドラインツールでよく使用されます.デバグモード印刷レポートでもよく使用されます(デバグ情報を出力する最良の過去ではありませんが)
System.err
System.ErrはPrintStreamです.システムに似ていますoutとは異なり、一般的にエラーログを印刷するために使用されます.一部のプログラム(Eclipseなど)では、System.errの出力ログを赤いフォントで表示します.
簡単なシステムout + System.Err例
次に、Systemを使用する簡単な例を示す.システムとerr:
try {
  InputStream input = new FileInputStream("c:\\data\\...");
  System.out.println("File opened...");

} catch (IOException e){
  System.err.println("File opening failed:");
  e.printStackTrace();
}

システムの流れを変える
システムの3つのストリームがjavaであってもlang.Systemの3つの静的メンバーは、仮想マシンの起動時に初期化されていますが、1つのストリームで変更することもできます.システムにあげるだけだInまたはSystem.outは新しいInputStreamを作成し,すべてのデータを新しいストリームに読み書きできる.Systemを使用します.setIn()、System.setout()またはSystem.setErr()メソッドの1つです.たとえば、次のような新しいSystemストリームを作成します.
OutputStream output = new FileOutputStream("c:\\data\\system.out.txt");
PrintStream printOut = new PrintStream(output);

System.setOut(printOut);

システムにすべて書き込みます.outのデータはすべてディレクトリc:datasystemに指向することができる.out.txtです.ただし、JVMがオフになる前にSystemをリフレッシュする必要があることを確認する必要があります.outとこのファイルを閉じて、すべてのデータがファイルにリフレッシュされていることを確認します.