实例说明
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=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();
}
}
}
相关推荐
Java开发自学100天,Java开发必背代码 重定向输出流实现程序日志
在Java编程中,记录程序日志是一项非常重要的任务,它有助于在开发和调试过程中追踪程序的运行状态,尤其是在处理异常和错误时。Java提供了一种机制,可以通过重定向输出流来将程序的输出信息记录到文件中,而不是...
非常的不方便,所以做了个日志输出的重定向到屏幕上 为了图方便,用了UGUI做输出显示 支持做了简单的颜色区分和时间显示,并且会自动拦截全局的未catch的exception信息 提供了显示隐藏和屏蔽滑动的功能(用于...
实例013 重定向输出流实现程序日志 实例014 自动类型转换与强制类型转换 实例015 加密可以这样简单(位运算) 实例016 用三元运算符判断奇数和偶数 . 实例017 不用乘法运算符实现2×16 实例018 实现两个变量的...
本压缩包"日志重定向输出.zip"是关于Qt框架下实现日志重定向输出的一个开源示例项目。Qt是一个跨平台的C++图形用户界面库,广泛用于桌面和移动应用开发。 项目包含以下文件: 1. **savelog.cpp**:这是主要的源...
例如,通过重定向输出,我们可以将程序的运行结果保存到文件中,而不是直接显示在屏幕上。这在自动化测试、日志记录或者需要批量处理大量数据时非常有用。重定向输入则可以让程序从文件中读取数据,而非等待用户手动...
在IT领域,控制台程序输出重定向是一项常用的技术,它允许我们将原本在控制台窗口显示的信息,导向到其他地方,例如文本框、日志文件或是网络流等。这对于自动化脚本、日志记录或者GUI应用程序集成控制台输出非常...
实例013 重定向输出流实现程序日志 17 实例014 自动类型转换与强制类型转换 19 实例015 加密可以这样简单(位运算) 20 实例016 用三元运算符判断奇数和偶数 21 实例017 不用乘法运算符实现2×16 22 实例018 实现两...
标题中的“例程:将CMD的输入输出重定向到自己的进程”是指在Windows操作系统中,通过命令行(CMD)实现程序的输入输出流与CMD进程交互的一种技术。这个过程通常涉及到了I/O重定向和管道的概念,它们是操作系统提供...
python 打印信息重定向 GUI界面 ,PyQt5实时显示调用外部程序的实时输出显示,subprocess.Popen stdout输出重定向,备注详细!
这个函数可以改变一个流的关联文件描述符,实现输入/输出的重定向。例如: ```c freopen("output.txt", "w", stdout); ``` 这段代码将标准输出重定向到 `output.txt` 文件,所有后续的 `printf` 输出都会写入这个...
在QT中,为了便于调试和监控程序运行状态,通常会将日志信息输出到控制台或者重定向到文件。"QT重定向日志到文件"这个主题,涉及到的关键知识点主要包括以下几个方面: 1. **QT日志系统**:QT内部有一个简单的日志...
在Windows操作系统中,控制台(Console)重定向是一项基础但重要的功能,它允许我们改变DOS命令或控制台应用程序的标准输入、输出和错误流。这个`redir_demo.zip`文件包含了一个DEMO,用于演示这一技术。让我们深入...
实例021 重定向输出流实现程序日志 31 实例022 自动类型转换与强制类型转换 33 2.2 运算符 34 实例023 加密可以这样简单(位运算) 34 实例024 用三元运算符判断奇数和偶数 35 实例025 更精确地使用浮点数 35 实例...
总结来说,易语言曙光重定向输出模块是将控制台程序与GUI结合的实用工具,它通过调用API函数实现了标准输入输出的重定向。学习并理解这个模块,对于易语言开发者来说,不仅能够提升程序的用户体验,还有助于深入理解...
Qt提供了一种内置机制来处理日志,即`qInstallMessageHandler`函数,这个函数允许我们自定义消息处理函数,将原本输出到控制台的日志信息重定向到其他地方,如文件或网络。本文将深入探讨如何利用`...