知识大全 重定向输出流实现程序日志
Posted 变量
篇首语:听闻少年二字,当与平庸相斥。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 重定向输出流实现程序日志相关的知识,希望对你有一定的参考价值。
System类中的out成员变量是java的标准输出流 通常用它来输出调试信息 out成员变量被定义为final类型 无法直接重新复制 但是可以通过setOut()方法来设置新的输出流 本例通过该方法实现了输出流的重定向 把它指向一个文件输出流 从而实现了日志功能 程序运行后绘制控制台提示运行结束信息 但是在运行过程中的步骤保存到了日志文件中
调用System类的setOut()方法改变了输出流 System类的out err和in成员变量是final类型的 不能直接赋值 要通过相应的方法来改变流
setOut()方法 重新分配System类的标准输出流 方法声明
Public static void setOut(PrintStream out) out:新的PrintStream输出流对象
setErr()方法 重新分配System类的标准错误输出流 方法声明
Public static void setErr(PrintStream err) err:新的PrintStream输出流对象
setIn()方法 重新设置System类的in成员变量 即标准输入流
创建RedirectOutputStream类 编写main()主方法 在该方法中保存System类的out成员变量为临时变量 然后创建一个新的文件输出流 并把这个文件输出流设置为System类新的输出流 在程序关键位置输出调试信息 这些调试信息将通过新的输出流保存到日志文件中 最后恢复原有输出流并输出程序运行结束信息 关键代码
import java io FileNotFoundException;
import java io PrintStream;
public class RedirectOutputStream
public static void main(String[] args)
try
PrintStream out=System out; //保存原输出流
PrintStream ps=new PrintStream( /log txt ) //创建文件输出流
System setOut(ps) //设置使用新的输出流
int age= ;
System out println( 年龄变量成功定义 初始值为 )
String ***= 女 ;
System out println( 性别变量成功定义 初始值为女 )
String info= 这个是 +***+ 孩子 应该有 +age+ 岁了! ;
System out println( 整合两个变量为info字符串变量 其结果是 +info)
System setOut(out) //恢复原有输出流
System out println( 程序运行完毕 请查看日志文件 )
catch(FileNotFoundException e)
e printStackTrace()
cha138/Article/program/Java/hx/201311/25742
相关参考