Изменение выходного потока обратно на system.out

1

Мои главные вызовы несколько классов, каждый из которых перенаправляет System.out, чтобы они могли перехватывать то, что было напечатано другим классом (даже если это плохая практика - я должен это сделать). Затем, после того, как все они закончатся, я хотел бы просто напечатать на экране с моим главным, но ничего не происходит.

Код в классе1, класс2:

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!
Теги:
io
system.out

1 ответ

3
Лучший ответ

Вы должны сохранить исходный System.out. System.setOut() изменяет System.out, поэтому вы по существу делаете System.out = System.out; что, конечно, ничего не делает.

  • 0
    Спасибо, это сработало. Я думал, что System.out является потоком по умолчанию, а не тем, который используется в настоящее время!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню