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как наиболее удобный класс для текстового вывода.