繁体   English   中英

重置标准输出流

[英]Resetting Standard output Stream

我知道 Java 中有一个函数可以使用System.setOut方法将标准输出流设置为任何用户定义的值。

但是有什么方法可以将标准输出重置为先前存储的输出或标准输出的输出?

您可以通过FileDescriptor.out获取标准输出的文件描述符。 要重置标准输出以打印到控制台,您可以

System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));

另一种方法是简单地保持原始对象,如下所示:

PrintStream stdout = System.out;
System.setOut(new PrintStream(logFile));

// ...

System.setOut(stdout);                   // reset to standard output

这是一个老问题,但它一直出现在谷歌搜索中,我想纠正它。 您实际上可以通过使用FileDescriptor类来获取它。 调用new PrintStream(new FileOutputStream(FileDescriptor.out)))应该会给你一些打印到标准输出的东西。

import java.io.FileDescriptor;
import java.io.FileOutputStream;
import java.io.PrintStream;


public static void main(String [] args) {
    System.err.println("error.");
    System.out.println("out.");
    System.setOut(System.err);
    System.out.println("error?");
    System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
    System.out.println("out?");
}

我知道Java中有一个函数可以使用System.setOut方法将“标准输出流”设置为任何用户定义的值。

但是,是否有任何方法可以将标准输出重置为先前存储的或标准输出?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM