`
dyllove98
  • 浏览: 1405458 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39059
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80062
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

重定向输出流实现程序日志

 
阅读更多

实例说明

    System类中的out成员变量是java的标准输出流,程序通常用它来输出调试信息,out成员变量被定义为final类型的,无法直接重新复制,但是可以通过setOut()方法来设置新的输出流。本例通过该方法实现了输出流的重定向,把它指向一个文件输出流,从而实现了日志功能。程序运行后绘制控制台提示运行结束信息;但是在运行过程中的步骤保存到了日志文件中。

关键技术

    调用System类的setOut()方法改变了输出流,System类的outerrin成员变量是final类型的,不能直接赋值,要通过相应的方法来改变流。

setOut()方法:重新分配System类的标准输出流,方法声明

Public static void setOutPrintStream out); out:新的PrintStream输出流对象。

setErr()方法:重新分配System类的标准错误输出流,方法声明

Public static void setErrPrintStream 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开发自学100天,Java开发必背代码 重定向输出流实现程序日志

    Java中重定向输出流实现用文件记录程序日志

    在Java编程中,记录程序日志是一项非常重要的任务,它有助于在开发和调试过程中追踪程序的运行状态,尤其是在处理异常和错误时。Java提供了一种机制,可以通过重定向输出流来将程序的输出信息记录到文件中,而不是...

    Unity重定向日志输出到屏幕

    非常的不方便,所以做了个日志输出的重定向到屏幕上 为了图方便,用了UGUI做输出显示 支持做了简单的颜色区分和时间显示,并且会自动拦截全局的未catch的exception信息 提供了显示隐藏和屏蔽滑动的功能(用于...

    Java经典编程300例(完整版+源码

    实例013 重定向输出流实现程序日志 实例014 自动类型转换与强制类型转换 实例015 加密可以这样简单(位运算) 实例016 用三元运算符判断奇数和偶数 .  实例017 不用乘法运算符实现2×16 实例018 实现两个变量的...

    日志重定向输出.zip

    本压缩包"日志重定向输出.zip"是关于Qt框架下实现日志重定向输出的一个开源示例项目。Qt是一个跨平台的C++图形用户界面库,广泛用于桌面和移动应用开发。 项目包含以下文件: 1. **savelog.cpp**:这是主要的源...

    易语言重定向输入输出源码

    例如,通过重定向输出,我们可以将程序的运行结果保存到文件中,而不是直接显示在屏幕上。这在自动化测试、日志记录或者需要批量处理大量数据时非常有用。重定向输入则可以让程序从文件中读取数据,而非等待用户手动...

    控制台程序输出重定向

    在IT领域,控制台程序输出重定向是一项常用的技术,它允许我们将原本在控制台窗口显示的信息,导向到其他地方,例如文本框、日志文件或是网络流等。这对于自动化脚本、日志记录或者GUI应用程序集成控制台输出非常...

    Java经典编程源码基础例程300.zip

    实例013 重定向输出流实现程序日志 17 实例014 自动类型转换与强制类型转换 19 实例015 加密可以这样简单(位运算) 20 实例016 用三元运算符判断奇数和偶数 21 实例017 不用乘法运算符实现2×16 22 实例018 实现两...

    例程:将CMD的输入输出重定向到自己的进程

    标题中的“例程:将CMD的输入输出重定向到自己的进程”是指在Windows操作系统中,通过命令行(CMD)实现程序的输入输出流与CMD进程交互的一种技术。这个过程通常涉及到了I/O重定向和管道的概念,它们是操作系统提供...

    python 打印信息重定向 GUI界面 ,PyQt5实时显示调用外部程序的实时输出显示,subprocess.Popen stdout输出重定向,备注详细!

    python 打印信息重定向 GUI界面 ,PyQt5实时显示调用外部程序的实时输出显示,subprocess.Popen stdout输出重定向,备注详细!

    重定向程序设计

    这个函数可以改变一个流的关联文件描述符,实现输入/输出的重定向。例如: ```c freopen("output.txt", "w", stdout); ``` 这段代码将标准输出重定向到 `output.txt` 文件,所有后续的 `printf` 输出都会写入这个...

    QT重定向日志到文件

    在QT中,为了便于调试和监控程序运行状态,通常会将日志信息输出到控制台或者重定向到文件。"QT重定向日志到文件"这个主题,涉及到的关键知识点主要包括以下几个方面: 1. **QT日志系统**:QT内部有一个简单的日志...

    redir_demo.zip_Console 重定向_DEMO_dos重定向_输出重定向_重定向

    在Windows操作系统中,控制台(Console)重定向是一项基础但重要的功能,它允许我们改变DOS命令或控制台应用程序的标准输入、输出和错误流。这个`redir_demo.zip`文件包含了一个DEMO,用于演示这一技术。让我们深入...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例021 重定向输出流实现程序日志 31 实例022 自动类型转换与强制类型转换 33 2.2 运算符 34 实例023 加密可以这样简单(位运算) 34 实例024 用三元运算符判断奇数和偶数 35 实例025 更精确地使用浮点数 35 实例...

    易语言-曙光重定向输出模块

    总结来说,易语言曙光重定向输出模块是将控制台程序与GUI结合的实用工具,它通过调用API函数实现了标准输入输出的重定向。学习并理解这个模块,对于易语言开发者来说,不仅能够提升程序的用户体验,还有助于深入理解...

    Qt日志重定向qInstallMessageHandler,输出至文件及网络

    Qt提供了一种内置机制来处理日志,即`qInstallMessageHandler`函数,这个函数允许我们自定义消息处理函数,将原本输出到控制台的日志信息重定向到其他地方,如文件或网络。本文将深入探讨如何利用`...

Global site tag (gtag.js) - Google Analytics