На этом шаге мы рассмотрим класс PrintWriter
Класс PrintWriter реализует интерфейсы Appendable, Closeable и Flushable. У класса PrintWriter имеется несколько конструкторов. Рассмотрим сначала первую группу конструкторов этого класса:
PrintWriter(OutputStream output); PrintWriter(OutputStream output, boolean flag); PrintWriter(Writer writer); PrintWriter(Writer writer, boolean flag);
Параметры output и writer обозначает открытый поток вывода, который будет принимать выводимые данные. Параметр flag определяет, будет ли буфер вывода автоматически очищаться всякий раз, когда вызывается метод println() или printf(). Если параметр flag принимает логическое значение true, то происходит автоматическая очистка буфера вывода. А если этот параметр принимает логическое значение false, то очистка буфера вывода не производится автоматически. Конструкторы, не принимающие параметр flag, не производят очистку буфера вывода автоматически.
Рассмотрим вторую группу конструкторов класса PrintWriter:
PrintWriter(File file) throws FileNotFoundException PrintWriter(File file, String coding) throws FileNotFoundException, UnsupportedEncodingException PrintWriter(String pathname) throws FileNotFoundException PrintWriter(String pathname, String coding) throws FileNotFoundException, UnsupportedEncodingException
Эти конструкторы позволяют создать объект класса PrintWriter из объекта типа File или по имени файла. Но в любом случае файл создается автоматически. Любой существующий файл с тем же именем уничтожается. Как только поток вывода будет создан в виде объекта класса PrintWriter, он будет направлять все выводимые данные в указанный файл. Параметр coding задает кодировку символов.
Класс PrintWriter предоставляет методы print() и println() для всех типов, включая тип Object. Если аргумент не относится к примитивному типу, методы из класса PrintWriter вызывают сначала метод toString() такого объекта, а затем выводят результат его выполнения.
В классе PrintWriter поддерживается также метод printf() который имеет следующий синтаксис:
PrintWriter printf(String format, Object... args); PrintWriter printf(Locale locale, String format, Object... args);
Поведение функции printf() аналогично поведению функции printf() в языке программирования C++.
На следующем шаге мы приведем примеры использования потоков ввода-вывода символов