java.io.PrintStream:标准的字节输出流。默认输出到控制台。
示例代码:
public class PrintStreamTest {
public static void main(String[] args) {
// 联合起来写
System.out.println("HelloWorld!");
// 分开写
PrintStream ps = System.out;
ps.println("hello zahgnsan!");
ps.println("hello lisi!");
ps.println("hello wangwu!");
// 标准输出流不需要手动close()关闭。
// 可以改变标准输出流的输出方向吗? 可以
/*
// 这些是之前System类使用过的方法和属性。
System.gc();
System.currentTimeMillis();
PrintStream ps2 = System.out;
System.exit(0);
System.arraycopy(....);
*/
PrintStream p = null;
try {
// 标准输出流不再指向控制台,指向“log”文件。
p = new PrintStream(new FileOutputStream("log"));
//改变流的输出方向// 修改输出方向,将输出方向修改到"log"文件。
System.setOut(p);
//再输出
p.println("hello zhangsan");
p.println("hello lisi");
p.println("hello wangwu");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
运行结果:
使用标准输出流实现日志
①Logger.java
/*
* 日志工具
* */
public class Logger {
/*
* 记录日志的方法
* */
public static void Logger(String msg) {
PrintStream ps = null;
{
try {
// 指向一个日志文件
ps = new PrintStream(new FileOutputStream("log.txt",true));
//改变流输出方向
System.setOut(ps);
//写入指定格式数据,日期当前时间
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();
}
}
}
}
②LogTest.java
public class LogTest {
public static void main(String[] args) {
Logger.Logger("调用了System类的gc方法,建议启动垃圾回收");
Logger.Logger("调用了UserService的doSome方法");
Logger.Logger("用户尝试登录,验证失败");
Logger.Logger("调用了System类的gc方法,建议启动垃圾回收");
Logger.Logger("调用了UseService的doSome方法");
Logger.Logger("用户尝试进行登录,验证失败");
Logger.Logger("我非常喜欢这个记录日志的工具哦!");
}
}