`
itoracja
  • 浏览: 141739 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java重定向System.out和System.err

阅读更多

    <div>继承PrintStream类:
<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 95%; padding-top: 4px;">
<div>
<span style="color: #000000;"></span><span style="color: #0000ff;">public</span><span style="color: #000000;"></span><span style="color: #0000ff;">class</span><span style="color: #000000;">TeeStream</span><span style="color: #0000ff;">extends</span><span style="color: #000000;">PrintStream{<br>PrintStreamout;<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;">TeeStream(PrintStreamout1,PrintStreamout2){<br></span><span style="color: #0000ff;">super</span><span style="color: #000000;">(out1);<br></span><span style="color: #0000ff;">this</span><span style="color: #000000;">.out</span><span style="color: #000000;">=</span><span style="color: #000000;">out2;<br>}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">write(</span><span style="color: #0000ff;">byte</span><span style="color: #000000;">buf[],</span><span style="color: #0000ff;">int</span><span style="color: #000000;">off,</span><span style="color: #0000ff;">int</span><span style="color: #000000;">len){<br></span><span style="color: #0000ff;">try</span><span style="color: #000000;">{<br></span><span style="color: #0000ff;">super</span><span style="color: #000000;">.write(buf,off,len);<br>out.write(buf,off,len);<br>}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(Exceptione){<br>}<br>}<br></span><span style="color: #0000ff;">public</span><span style="color: #000000;"></span><span style="color: #0000ff;">void</span><span style="color: #000000;">flush(){<br></span><span style="color: #0000ff;">super</span><span style="color: #000000;">.flush();<br>out.flush();<br>}<br>}<br></span>


使用示例:

<div style="padding-right: 5.4pt; padding-left: 5.4pt; background: #e6e6e6; padding-bottom: 4px; width: 95%; padding-top: 4px;">
<div>
<span style="color: #000000;"></span><span style="color: #0000ff;">try</span><span style="color: #000000;">{<br>PrintStreamout</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">PrintStream(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">FileOutputStream(</span><span style="color: #000000;">"</span><span style="color: #000000;">out.log</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>PrintStreamtee</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">TeeStream(System.out,out);<br><br>System.setOut(tee);<br><br>PrintStreamerr</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">PrintStream(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">FileOutputStream(</span><span style="color: #000000;">"</span><span style="color: #000000;">err.log</span><span style="color: #000000;">"</span><span style="color: #000000;">));<br>tee</span><span style="color: #000000;">=</span><span style="color: #000000;"></span><span style="color: #0000ff;">new</span><span style="color: #000000;">TeeStream(System.err,err);<br><br>System.setErr(tee);<br>}</span><span style="color: #0000ff;">catch</span><span style="color: #000000;">(FileNotFoundExceptione){<br>}<br><br>System.out.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">welcome</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br>System.err.println(</span><span style="color: #000000;">"</span><span style="color: #000000;">error</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br></span>


 
0
1
分享到:
评论

相关推荐

    Log4j将System.out搞到log4j中输出四

    当然,这只是基本的实现方式,实际应用中可能需要考虑更多细节,比如错误流的处理(`System.err.println()`)、多线程环境下的同步问题以及更复杂的过滤和日志级别控制等。通过这种方式,我们不仅可以将`System.out....

    Tomcat输出catalina.out的大小控制

    这意味着所有通过System.out.println()或System.err.println()打印的信息,包括Java应用的调试信息,都将被记录在此文件中。 控制`catalina.out`大小的方法主要有两种:一是配置Tomcat的logging.properties文件,二...

    Java I/O 标准输入输出流System.in

    `IORedirect.java`这个文件名可能指的是一个示例程序,演示如何重定向`System.in`,这在自动化测试或者需要从文件读取数据时非常有用。通过设置环境变量或者命令行参数,我们可以让程序从指定的文件而不是键盘读取...

    tomcat输出输出着就不输出了,什么原因?解决方法是

    1. **日志重定向**:Tomcat默认配置下,标准输出(`System.out`)和标准错误(`System.err`)会被重定向到服务器的控制台日志中。如果Tomcat日志配置发生了变化或者日志文件达到了某个大小限制,那么新的输出可能会...

    java执行可执行文件,Runtime.exec、ProcessBuilder、commons-exec

    - `setStreamHandler()`设置流处理器,这里使用`PumpStreamHandler`将输出重定向到`System.out`和`System.err`。 - `execute(cmdLine)`执行命令行并返回退出值。 ### 总结 以上三种方法各有优劣。`Runtime.exec()`...

    Java程序 中截获控制台 输出

    `LoopedStreams.java`可能是一个用于循环处理多个流的类,它可能包含了一个循环结构,用于同时读取并处理`System.out`和`System.err`。这样的设计可以确保不丢失任何输出信息,尤其是在并发环境下。 `...

    用于测试使用java.lang.System的代码的JUnit规则集合

    在`java.lang.System`类中,有如`System.out`、`System.in`和`System.err`这样的全局变量,它们分别代表了标准输出、标准输入和标准错误流。在常规的测试环境中,这些流的输出很难捕获和控制。然而,使用`system-...

    JAVA管道流.pdf

    在Java开发中,尤其是在处理控制台输出时,管道流能帮助我们捕获和处理System.out和System.err的输出,这对于调试、日志记录或者在没有控制台窗口的情况下收集错误信息非常有用。 标题中的"JAVA管道流.pdf"可能是一...

    java用重定向方法从文件中读入或写入数据

    _System.out_对象是Java中的标准输出流##_System.in_对象是Java中的标准输入流##通过使用重定向方法,我们可以将控制台的输入或输出重定向到文件中,从而实现从文件中读入或写入数据。 二、Java重定向方法读取文件 ...

    System Lambda是一个函数集合,用于测试使用javalangSystem的代码.zip

    1. **标准输入/输出/错误流(System.in, System.out, System.err)**:在常规的单元测试中,很难控制这些流的输出。System Lambda 允许开发者替换这些流,以便于捕获、验证或模拟输入输出数据。 2. **系统属性...

    JAVA学习笔记最新ppt版3

    - `System.out`: 提供标准输出流,通常用于打印到控制台,也可以重定向到文件。 - `System.in`: 提供标准输入流,通常与键盘关联,也可以从其他输入源获取数据。 - `System.err`: 提供标准错误输出流,通常用于...

    【Code】标准输出重定向到GUI

    5. 现在,任何在`System.out.println()`或`System.err.println()`中输出的信息都会被重定向到指定的Swing组件中。 在`RedirectingStandardIO`这个示例程序中,可能包含了具体的代码实现,包括创建GUI,创建自定义...

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

    首先,Java的`System`类中包含三个标准流:`System.out`、`System.err`和`System.in`,分别用于标准输出、标准错误和标准输入。`System.out`和`System.err`通常用于打印信息,而`System.in`则用于接收用户输入。这些...

    JAVA-文件操作.pdf

    可以使用`System.setOut(PrintStream out)`方法将标准输出重定向到指定的PrintStream,例如文件。 四、实战应用 1. 创建文件并检查是否存在,如果存在则删除: ```java File file = new File("path"); if (file....

    java获取http状态码

    System.err.println("Method failed: " + getMethod.getStatusLine()); } InputStream in = getMethod.getResponseBodyAsStream(); sl = getMethod.getStatusLine(); String version = sl.getHttpVersion(); ...

    Java执行DOS命令

    System.err.println(line); } reader.close(); // 等待命令执行完成 int exitCode = process.waitFor(); System.out.println("Command exited with code: " + exitCode); } catch (IOException | ...

    在java中截获控制台输出

    首先,Java中的`System.out.println()`和`System.err.println()`是我们常见的控制台输出方式,它们主要用于调试和信息打印。但是,这些输出在图形用户界面(GUI)环境下并不直接可见,因为GUI没有与之对应的控制台...

    java调用mysql命令 导入导出数据库

    在标签"源码 工具"的提示下,我们可以推断这个`MySqlDump_tool.java`文件可能提供了更复杂的功能,比如参数化命令,支持不同的备份选项,或者包含错误处理和日志记录机制。不过,由于没有提供具体的源码,这部分内容...

    java笔记,java学习笔记

    Java提供了控制输出流的机制,其中`System.out.println()`和`System.err.println()`用于控制台输出。值得注意的是,标准错误流(`System.err`)的输出不会被重定向到文件,即使使用了重定向操作符`&gt;`。若想将输出...

    java管道流

    System.err.println("连接失败"); System.exit(1); } PrintStream ps = new PrintStream(pipedOS); System.setOut(ps); System.setErr(ps); ``` 这段代码展示了如何使用管道流来重定向标准输出和错误输出。具体...

Global site tag (gtag.js) - Google Analytics