重置标准输出流
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重置标准输出流相关的知识,希望对你有一定的参考价值。
我知道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)))
应该给你一些打印到stdout的东西。
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?");
}
以上是关于重置标准输出流的主要内容,如果未能解决你的问题,请参考以下文章