標準的位元組輸出流 & 如何用它寫一篇日誌檔案

TRasdzz發表於2020-10-08

java.io.printStream

標準的位元組輸出流。預設輸出到控制檯

    public static void main(String[] args) throws Exception {
        //聯合起來寫
        System.out.println("hello world");

        //分開寫
        PrintStream ps = System.out;
        ps.println("hello zhangsan");
        ps.println("hello lisi");
        ps.println("hello wangwu");

        //標準輸出流不需要捕獲異常 不需要手動close()關閉
        /*
        之前學習過的方法和屬性
        System.gc()
        System.currentTimeMills();
        PrintStream ps = System.out;
        System.exit();
        System.arraycopy()
         */

        //改變標準輸出流的輸出方向
        //標準輸出流不再指向控制檯,指向log檔案
        PrintStream printStream = new PrintStream(new FileOutputStream("log.txt"));
        //修改輸出方向,將輸出方向修改到log檔案
        System.setOut(printStream);
        // 再輸出
        System.out.println("hello world");
        System.out.println("hello kitty");
        System.out.println("hello zhangsan");
    }

日誌檔案

public class Logger {
    public static void log(String msg){
        try {
            PrintStream printStream = new PrintStream(new FileOutputStream(
                    "log.txt",true));
            System.setOut(printStream);
            Date date = new Date();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
            String format = sdf.format(date);
            System.out.println(format + ":" + msg);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
public class LogApplication {
    public static void main(String[] args) {
        Logger.log("呼叫了System.gc()方法");
        Logger.log("不想打程式碼");
        Logger.log("煩死了");
    }
}

相關文章