一、PrintStream
- 标准的字节输出流,默认输出到控制台
1.构造方法
PrintStream(File file)
使用指定的文件创建一个新的打印流,而不需要自动换行。PrintStream(File file, String csn)
使用指定的文件和字符集创建新的打印流,而不需要自动换行。PrintStream(OutputStream out)
创建一个新的打印流。PrintStream(OutputStream out, boolean autoFlush)
创建一个新的打印流。PrintStream(OutputStream out, boolean autoFlush, String encoding)
创建一个新的打印流。PrintStream(String fileName)
使用指定的文件名创建新的打印流,无需自动换行。PrintStream(String fileName, String csn)
创建一个新的打印流,不需要自动换行,具有指定的文件名和字符集。
2.代码示例
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;
public class PrintStreamTest01 {
public static void main(String[] args) throws Exception {
//合起来写的输出
System.out.println("Hello,World");
//分开写的输出
PrintStream ps = System.out;
ps.println("Hello,World");
ps.println(true);
//标准输出流不需要手动close()关闭
PrintStream printStream = new PrintStream(new FileOutputStream("log"));
//我们可以使用System.setOut指定输出方向
System.setOut(printStream);
//再次进行输出,可以看到,输出的内容不在控制台,而是出现在了log文件中
System.out.println(1);
System.out.println(2);
System.out.println(3);
//同样我们也可以在把输出方向切换到控制台上
System.setOut(ps);
System.out.println(4);
}
}
输出:
首先看一下控制台的输出结果
Hello,World
true
4
然后因为我们把输出的一部分打印到log文件上了,我们打开log文件看一下
日志文件就是利用这种原理生成的。
二、打印日志文件
首先我们一个写一个记录日志的方法
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
//日志工具
public class Logger {
//记录日志的方法
public static void log(String msg) {
try {
//标准输出流指向日志文件,用true设置成追加,再次运行就不会清空文件
PrintStream out = new PrintStream(new FileOutputStream("data",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();
}
}
}
然后我们在测试类中看一下
public class LogTest {
public static void main(String[] args) {
//测试工具类
Logger.log("调用了System类的gc方法,建议启动垃圾回收");
Logger.log("用户尝试进行登录,登录失败");
Logger.log("用户尝试登录,登录成功");
}
}
看一下生成的data文件
2022-07-23 16:59:53 676:用户尝试进行登录,登录失败
2022-07-23 17:00:55 511:调用了System类的gc方法,建议启动垃圾回收
2022-07-23 17:00:55 537:用户尝试进行登录,登录失败
2022-07-23 17:58:02 427:调用了System类的gc方法,建议启动垃圾回收
2022-07-23 17:58:02 455:用户尝试进行登录,登录失败
2022-07-23 17:58:02 456:用户尝试登录,登录成功
可以看到输出了日期时间以及日志信息
Original: https://www.cnblogs.com/lingstar/p/16512626.html
Author: 星余明
Title: 标准输出流与日志文件
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/594106/
转载文章受原作者版权保护。转载请注明原作者出处!