[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-i-o-nio-kakie-podklassy-klassa-reader-vy-znaete-dlya-chego-oni-prednaznacheny":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":19,"progress":20,"seo":21},666,"kakie-podklassy-klassa-reader-vy-znaete-dlya-chego-oni-prednaznacheny",15,"i-o-nio","I\u002FO & NIO","📁","Какие подклассы класса Reader вы знаете, для чего они предназначены?","`Reader` — абстрактный класс, определяющий контракт для посимвольного чтения текстовых данных в кодировке Unicode.\n\n| Класс | Тип | Назначение |\n|---|---|---|\n| `FileReader` | Узловой | Чтение текста из файла (использует кодировку по умолчанию; с Java 11 можно указать charset) |\n| `CharArrayReader` | Узловой | Чтение из символьного массива в памяти |\n| `StringReader` | Узловой | Чтение из строки |\n| `PipedReader` | Узловой | Чтение из канала, связанного с `PipedWriter` |\n| `BufferedReader` | Обёртка | Буферизованное чтение с поддержкой метода `readLine()` и `lines()` (Stream API) |\n| `InputStreamReader` | Обёртка | Мост между байтовым и символьным потоком: преобразует байты в символы с указанной кодировкой |\n| `FilterReader` | Обёртка | Базовый класс для символьных потоков-обёрток |\n| `LineNumberReader` | Обёртка | Расширение `BufferedReader`, подсчитывающее номера строк |\n| `PushbackReader` | Обёртка | Аналог `PushbackInputStream` для символьных потоков, позволяет возвращать символы в поток |\n\nНа практике наиболее часто используется связка `BufferedReader` + `InputStreamReader` (или `FileReader`). `BufferedReader.readLine()` — один из самых распространённых методов для построчного чтения файлов. Начиная с Java 8, метод `BufferedReader.lines()` возвращает `Stream\u003CString>` для ленивой обработки строк.\n\n> **На собеседовании:** перечислите 5-6 ключевых подклассов. Обратите внимание на `InputStreamReader` как мост между байтовым и символьным миром и на `BufferedReader.lines()` для Stream API.","","junior",[15,16,17,18],"core","основы","inputstream","io",[],null,{"title":22,"description":23,"ogTitle":24,"ogDescription":25,"keywords":26,"schemaAnswer":36,"featuredSnippetReady":37},"Подклассы InputStream в Java — Gymterview","Подклассы InputStream: FileInputStream, BufferedInputStream, ByteArrayInputStream, DataInputStream, ObjectInputStream и другие. Узловые и обрабатывающие потоки.","Подклассы класса InputStream в Java — Gymterview","Обзор подклассов InputStream: узловые (File, ByteArray, Piped) и обрабатывающие (Buffered, Data, Object, Pushback, Sequence).",[27,28,29,30,31,32,33,34,35],"InputStream","FileInputStream","BufferedInputStream","DataInputStream","ObjectInputStream","ByteArrayInputStream","подклассы","Java IO","собеседование","Узловые: FileInputStream (чтение из файла), ByteArrayInputStream (из массива байт), PipedInputStream (межпоточный канал). Обрабатывающие: BufferedInputStream (буферизация), DataInputStream (чтение примитивных типов), ObjectInputStream (десериализация), PushbackInputStream (возврат байт в поток), SequenceInputStream (объединение потоков).",true]