Gymterview
junior

Какие подклассы класса Writer вы знаете, для чего они предназначены?

Writer — абстрактный класс для посимвольной записи текстовых данных в кодировке Unicode.

Класс Тип Назначение
FileWriter Узловой Запись текста в файл (с Java 11 можно указать charset)
CharArrayWriter Узловой Запись в символьный массив в памяти
StringWriter Узловой Запись в строку (StringBuffer внутри)
PipedWriter Узловой Запись в канал, связанный с PipedReader
BufferedWriter Обёртка Буферизованная запись с методом newLine() для платформо-независимого перевода строки
OutputStreamWriter Обёртка Мост между символьным и байтовым потоком: преобразует символы в байты с указанной кодировкой
FilterWriter Обёртка Базовый класс для символьных потоков-обёрток
PrintWriter Обёртка Удобный вывод через print(), println(), printf() с возможностью отключить автоматический flush

На практике PrintWriter — один из самых удобных классов для записи текста, так как поддерживает форматированный вывод и не выбрасывает IOException из методов print/println (ошибки проверяются через checkError()). OutputStreamWriter используется, когда нужно явно указать кодировку при записи.

На собеседовании: перечислите 5-6 подклассов. Выделите OutputStreamWriter как мост между символьными и байтовыми потоками и PrintWriter как наиболее удобный класс для текстового вывода.