一.PrintStream的基本使用 setOut()方法
package com.io;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
/*
java.io.PrintStream :标准的字节输出流。默认输出到控制台
*/
public class PrintStreamTest {
public static void main(String[] args) {
//联合起来写
System.out.println("hello world!");
//分开写
PrintStream ps = System.out;
ps.println("hello world!");
//标准输出流不需要手动close关闭
//可以改变标准输出流的输出方向
//标准输出流不再指向控制台,指向“log”文件
try {
System.setOut(new PrintStream(new FileOutputStream("log")));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("hello world !");
System.out.println("hello Kitty !");
}
}
二.记录日志的实现
1.Logger类
package com.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 out = new PrintStream(new FileOutputStream("log.txt",true));
//改变输出方向
System.setOut(out);
//日期当前时间
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();
}
}
}
2.测试
package com.io;
public class LogTest {
public static void main(String[] args) {
Logger.log("调用System类的gc()方法,建议启动垃圾回收");
Logger.log("用户尝试登陆,验证失败");
}
}
3.结果
2021-01-07 11:20:58 565: 调用System类的gc()方法,建议启动垃圾回收
2021-01-07 11:20:58 640: 用户尝试登陆,验证失败