知识大全 重定向输出流实现程序日志

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

相关参考