System.out закрыт? Могу я снова открыть его?

Я помогал другу написать код Java, который мало что знает о Java. Поэтому я написал ему несколько вспомогательных функций, чтобы легко делать вещи, которые кажутся ему немного странными. Одна из них - это функция, которая записывает строку в OutputStream . Взгляните:

public void write(String txt, OutputStream out) {
    PrintWriter printer = new PrintWriter(out);
    printer.print(txt);
    printer.close();
}

Теперь вы можете использовать это легко по-разному, чтобы писать где угодно. Например, вы можете сделать это:

(new StreamHelper()).write("Hello Test", System.out);

Так я узнал, что впоследствии System.out.println () больше ничего не записывает в оболочку. Поэтому я думаю, что, возможно, printer.close () автоматически также закрывает System.out , и мне интересно, как его повторно активировать, чтобы я мог использовать его после того, как эта функция снова будет завершена.

Верно ли мое предположение? (Как я мог узнать, не спрашивая здесь?)

Как я могу продолжать использовать System.out после вызова функции write () ?

Являются есть ли лучшие способы написать такую ​​вспомогательную функцию?

20
задан adarshr 20 January 2012 в 12:21
поделиться