aio*_*obe 80
您可以获取标准输出的文件描述符FileDescriptor.out.要重置标准输出以打印到控制台,您可以
System.setOut(new PrintStream(new FileOutputStream(FileDescriptor.out)));
Run Code Online (Sandbox Code Playgroud)
另一种方法是简单地保持原始对象,如下所示:
PrintStream stdout = System.out;
System.setOut(new PrintStream(logFile));
// ...
System.setOut(stdout); // reset to standard output
Run Code Online (Sandbox Code Playgroud)
小智 25
这是一个老问题,但它一直出现在谷歌搜索中,我想纠正它.你可以通过使用这个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?");
}
Run Code Online (Sandbox Code Playgroud)