Хотя использование объекта system.out для записи на консоль все еще допустимо в Java, его применение рекомендуется главным образом для отладочных целей или для демонстрационных программ, типа тех, которые показаны в этой книге. Для реальных Java-программ для записи на консоль рекомендуется работать с потоком типа PrintWriter. PrintWriter — это один из классов символьного ввода/вывода. Использование подобного класса для консольного вывода облегчает интернационализацию вашей программы.
PrintWriter определяет несколько конструкторов. Мы будем использовать следующий:
PrintWriter (OutputStream outputSfcream, boolean flushOnNewline)
Здесь OutputStream — объект типа OutputStream; flushOnNewline — булевский параметр, используемый как средство управления сбрасыванием выходного потока в буфер вывода (на диск) каждый раз, когда выводится символ newline (\n). Если fiushOnNewiine — true, поток сбрасывается автоматически, если — false, то не автоматически.
PrintWriter поддерживает методы print() и println() для всех типов, включая object. Поэтому эти методы можно применять так же, как они использовались с объектом system.out. Если аргумент не является простым типом, то методы класса PrintWriter вызывают объектный метод toString() и затем печатают результат.
Чтобы записывать на консоль, используя класс printWriter, создайте объект System.out для выходного потока, и сбрасывайте поток после каждого символа newline. Например, следующая строка кода создает объект типа PrintWriter, который соединен с консольным выводом:
PrintWriter pw = new PrintWriter(System.out, true);
Очередное приложение иллюстрирует использование PrintWriter для управления консольным выводом: