将输出流更改回system.out

时间:2015-03-27 08:18:22

标签: java io system.out

我的主要调用几个类,每个类重定向System.out,以便他们可以拦截另一个类的打印(即使这是不好的做法 - 我必须这样做)。 然后,在他们全部完成之后,我想简单地在我的主屏幕上打印,但没有任何反应。

class1,class2中的代码:

doStuff() {
   ByteArrayOutputStream outContent = new ByteArrayOutputStream();
   System.setOut(new PrintStream(outContent));
   ...

主:

class1.doStuff();
class2.doStuff();
...
System.setOut(System.out); //set output back
System.out.println("Success!"); //print something. doesn't work!

1 个答案:

答案 0 :(得分:3)

您必须将原始System.out保存在某处。 System.setOut()会修改System.out,因此您实际上正在执行System.out = System.out;,这当然不会做任何事情。