ログを達成するための出力ストリームをリダイレクト(Javaは、古典的なケースプログラミング)

メンバ変数のSystemクラスは、Java標準出力ストリームがあるうち、プログラムは出力デバッグ情報にそれを使用しました。それはタイプの最後のメンバ変数として定義されているうち、直接再コピーすることができないことができるが、setOut()新しい出力ストリーム方式を設定するために使用されます。
コンソールの出力ストリームのリダイレクト、ファイルの出力、プログラムログ処理ステップ、およびラン・メッセージの終わりを使用して本発明の方法の一例。
コードは以下の通りであります:

import java.io.FileNotFoundException;
import java.io.PrintStream;

/**
 * 重定向输出流实现程序日志
 */
public class Example {
    public static void main(String[] args) {
        try {
            PrintStream out = System.out;//保存原输出流
            //创建文件输出流
            PrintStream ps = new PrintStream("C:/amyfile/tempfile/log.txt");
            System.setOut(ps);//设置使用新的输出流
            int age =18;
            System.out.println("年龄变量成功定义,初始值为18");
            String sex = "女";
            System.out.println("性别变量成功定义,初始值为女");
            String info = "是这个"+sex+"孩子,应该有"+age+"岁了。";
            System.out.println("整合两个变量为info字符串变量,其结果是:"+info);
            System.setOut(out);//恢复原有输出流
            System.out.println("程序运行完毕,请查看日志文件。");
        }catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}

次のように図の実行結果は以下のとおりです。
ここに画像を挿入説明

出力ログの場所:
ここに画像を挿入説明
内容のログ:
ここに画像を挿入説明

要約:これはと呼ばれるシステムクラスのキー例でsetOut()誤る、出力ストリーム、アウトのシステムを変更する方法、およびメンバー変数に最終であり、直接、適切な方法を通る流れを変更するために割り当てることができません。導入のメンバ変数を変更するには、次の3つの方法。

  1. setOut()方法:再割り当てクラスシステムの標準出力ストリーム。次のようにメソッドが宣言されている:(出力ストリームのうちのPrintStreamオブジェクト)
    >パブリック静的ボイドsetOut(のPrintStreamアウト){checkIO(); setOut0(OUT);}

  2. setErr()方法:再割り振り基準クラスのエラー出力ストリームのためのシステム。次のようにメソッドが宣言されています。ここに画像を挿入説明

  3. setIn()方法:クラスのメンバ変数、すなわち標準入力ストリームにシステムをリセットします。次のようにメソッドが宣言されています。ここに画像を挿入説明

おすすめ

転載: blog.csdn.net/cui_yonghua/article/details/91870673