我的主要调用几个类,每个类重定向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!
答案 0 :(得分:3)
您必须将原始System.out
保存在某处。
System.setOut()
会修改System.out
,因此您实际上正在执行System.out = System.out;
,这当然不会做任何事情。