package com.bjpowernode.javase.day27.IO; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; /*PrintStream:标准字节输出流 * 默认输出到控制台*/ public class IoTest01 { public static void main(String[] args) { System.out.println("HelloWolrd"); PrintStream s=System.out; s.println("hello zhangsan"); s.println("hello lisi"); s.println("hello wangwu"); //标准输出流不需要close try { PrintStream printStream=new PrintStream(new FileOutputStream("D:/javaSE/Test/Test02.txt")); //修改输出方向,将输出方向修改到Test02.txt文件中 System.setOut(printStream); //再输出 System.out.println("hello world"); System.out.println("hello kitty"); System.out.println("hello zhangsan"); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
可以用标准输出流编写日志:
setOut
public static void setOut(PrintStream out)
重新分配“标准”输出流。
package com.bjpowernode.javase.day27.IO; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.text.SimpleDateFormat; import java.util.Date; public class Logger { public static void log(String msg) { try { PrintStream printStream=new PrintStream(new FileOutputStream("D:/javaSE/Test/Test03.txt",true)); //这里一定要加true 不然每调用一次就会覆盖一次,到后来只保留最后一条日志 //改变输出方向 //其实就是改变当前类的println输出方向 System.setOut(printStream); //系统当前时间 Date nowTime=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss SSS"); String strTime=sdf.format(nowTime); System.out.println(strTime+":"+msg); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
测试程序:
package com.bjpowernode.javase.day27.IO; public class LoggerTest { public static void main(String[] args) { Logger.log("日志编写成功。"); Logger.log("正在对日志进行调试...."); Logger.log("调试成功...."); Logger.log("bjpowernode.com"); } }
效果: