Java基础应用之基本语法(重定向输出流实现程序日志)
2017-06-05 23:40
435 查看
Java基础应用之基本语法(重定向输出流实现程序日志)
实例运行结果:
图1 控制台运行结果
图 2 日志文件内容
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
创建RedirectOutputStream类,编写该类的main()主方法,在该方法中保存System类的out成员变量为临时变量,然后创建一个新的文件输出流,并把这个输出流设置为System类新的输出流。在程序关键位置输出调试信息,这些调试信息将通过新的输出流保存到日志文件中。最后恢复原有输出流并输出程序运行结束信息。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总结:System类中的out成员变量是Java的标准输出流,程序常用它来输出调试信息,out成员变量别定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。本实例利用该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。程序运行后绘制控制台提示运行结束信息,如图1所示,但是在运行过程中的步骤都保存到了日志文件中,如图2所示。
本实例的应用的关键技术是调用了System类的setOut()方法改变了输出流,System类的out、err和in成员变量是final类型的不能直接赋值,要通过相应的方法来改变流。下面分别介绍改变这3个成员变量的方法。
setOut方法。该方法用于重新分配System类的标准输出流。方法的声明如下:
public static void setOut(PrintStream out) 参数说明:out:新的PrintStream输出流对象。
setErr方法。该方法将重新分配System类的标准错误输出流。方法的声明如下:
public static void setErr(PrintStream err)参数说明:err:新的PrintStream输出流对象。
setIn方法。该方法将重新设置System类的in成员变量,即标准输入流。
实例运行结果:
图1 控制台运行结果
图 2 日志文件内容
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
创建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=18;// 定义整形变量 System.out.println("年龄变量成功定义,初始值为18"); String sex="女";// 定义字符串变量 System.out.println("性别变量成功定义,初始值为女"); // 整合两个变量 String info="这是个"+sex+"孩子,应该有"+age+"岁了。"; System.out.println("整合两个变量为info字符串变量,其结果是:"+info); System.setOut(out);// 恢复原有输出流 System.out.println("程序运行完毕,请查看日志文件。"); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
总结:System类中的out成员变量是Java的标准输出流,程序常用它来输出调试信息,out成员变量别定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。本实例利用该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。程序运行后绘制控制台提示运行结束信息,如图1所示,但是在运行过程中的步骤都保存到了日志文件中,如图2所示。
本实例的应用的关键技术是调用了System类的setOut()方法改变了输出流,System类的out、err和in成员变量是final类型的不能直接赋值,要通过相应的方法来改变流。下面分别介绍改变这3个成员变量的方法。
setOut方法。该方法用于重新分配System类的标准输出流。方法的声明如下:
public static void setOut(PrintStream out) 参数说明:out:新的PrintStream输出流对象。
setErr方法。该方法将重新分配System类的标准错误输出流。方法的声明如下:
public static void setErr(PrintStream err)参数说明:err:新的PrintStream输出流对象。
setIn方法。该方法将重新设置System类的in成员变量,即标准输入流。
相关文章推荐
- java重定向输出流实现程序日志
- 基础学习:控制台接收输入字符与重定向输出流实现程序日志两例子的编程
- java重定向输出流实现程序日志
- Java中重定向输出流实现用文件记录程序日志
- java300例之13--重定向输出流实现程序日志
- Java中重定向输出流实现用文件记录程序日志
- java笔记--重定向输出流实现程序输出到日志
- Java重定向输出流实现程序日志
- 重定向输出流实现程序日志
- Chapter 3、Java语法基础(一)---- Java程序基本结构 (19th,Feb)
- Java基础应用之基本语法(自动类型转换与强制类型转换)
- 重定向输出流实现程序日志
- Java基础学习之Java基本语法(1)【Java命名规范+程序执行过程】
- 使用java基本语法实现的小程序(从1000年1月1日到9999年12月31日所有的对称日)
- Java基础应用之基本语法(输出错误信息和调试信息)
- 重定向输出流实现程序日志
- 重定向输出流实现程序日志
- java基础--24.多线程的应用--电影院卖票程序的实现
- 重定向输出流实现程序日志
- 实例 20 重定向输出流实现程序日志