[ Java ] 標準出力をコンソールからファイルに変更する ( setOut )

Pocket

デフォルトでは、System.out.println 関数などは、コンソールに出力されます。 ここでは、この出力先をコンソールからファイルに変更するサンプルコードを掲載しています。また、標準出力と同じく、標準エラー出力の出力先もデフォルトでコンソールとなっています。C 言語などと同じ仕様です。詳細はコメントを参照ください。

スポンサーリンク

標準出力の出力先をコンソールからファイルに変更する
import java.io.*;

public class Sample {

    public static void main(String[] args) {

        try {

            System.out.println("1.この文章は標準出力(コンソール)に出力される");

            /*
             * 現在の標準出力先を保持する
             */
            PrintStream sysOut = System.out;

            /*
             * 標準出力の出力先をファイルに切り変える
             */
            FileOutputStream fos = new FileOutputStream("out.txt");
            PrintStream ps = new PrintStream(fos);

            System.setOut(ps); // 実際に切り替えているのはここ

            // 出力する
            System.out.println("2.この文章はout.txtに出力される");

            // ファイルをクローズ
            ps.close();
            fos.close();

            /*
             * 標準出力をデフォルトに戻す
             */
            System.setOut(sysOut);

            // 出力する
            System.out.println("3.この文章は標準出力(コンソール)に出力される");


        } catch(IOException e) {

            System.err.println(e.getMessage());

        }
    }
}

コンソールへの出力結果

次の通り、標準出力をコンソールからファイルへ出力先を変更したときにはコンソールへ出力されないことが確認できます。

> javac Sample.java
> 
> java Sample
1.この文章は標準出力(コンソール)に出力される
3.この文章は標準出力(コンソール)に出力される
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *