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");
}
}

效果:

该博客介绍了如何利用Java的PrintStream类重定向标准输出流,将其用于编写日志。通过`System.setOut()`方法修改输出方向,将输出内容写入指定文件,实现了日志的保存。示例代码展示了如何创建一个简单的日志记录器类`Logger`,并在测试程序中调用该类记录多条日志信息到文件中。

600

被折叠的 条评论
为什么被折叠?



