[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-i-o-nio-nazovite-osnovnye-klassy-potokov-vvoda-vyvoda":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":18,"progress":19,"seo":20},659,"nazovite-osnovnye-klassy-potokov-vvoda-vyvoda",15,"i-o-nio","I\u002FO & NIO","📁","Назовите основные классы потоков ввода\u002Fвывода","Основные классы потоков ввода\u002Fвывода образуют четыре иерархии, каждая с корневым абстрактным классом.\n\n| Иерархия | Корневой класс | Тип данных | Направление |\n|---|---|---|---|\n| Байтовый ввод | `InputStream` | byte | Чтение |\n| Байтовый вывод | `OutputStream` | byte | Запись |\n| Символьный ввод | `Reader` | char | Чтение |\n| Символьный вывод | `Writer` | char | Запись |\n\nКаждый корневой класс определяет базовый контракт: `InputStream` предоставляет метод `read()`, `OutputStream` — `write()`, `Reader` — `read(char[])`, `Writer` — `write(char[])`. Все четыре класса реализуют `Closeable` (а значит и `AutoCloseable`), что позволяет использовать их в конструкции `try-with-resources`.\n\nКонкретные реализации делятся на узловые (работающие с источником данных: `FileInputStream`, `FileReader`) и обрабатывающие (добавляющие функциональность: `BufferedInputStream`, `BufferedReader`, `DataInputStream`). Обрабатывающие потоки принимают в конструктор другой поток, реализуя паттерн Декоратор.\n\n> **На собеседовании:** достаточно назвать четыре корневых класса и пояснить, что байтовые работают с `byte`, символьные — с `char`. Бонус — упомянуть паттерн Декоратор и `AutoCloseable`.","","junior",[15,16,17],"core","основы","io",[],null,{"title":21,"description":22,"ogTitle":21,"ogDescription":23,"keywords":24,"schemaAnswer":34,"featuredSnippetReady":35},"Основные классы потоков ввода\u002Fвывода Java — Gymterview","Четыре корневых класса потоков Java IO: InputStream, OutputStream, Reader, Writer. Иерархия, контракты, паттерн Декоратор и AutoCloseable.","InputStream, OutputStream, Reader, Writer — корневые абстрактные классы потоков Java. Контракты и иерархия.",[25,26,27,28,29,30,31,32,33],"InputStream","OutputStream","Reader","Writer","потоки Java","абстрактный класс","AutoCloseable","Декоратор","собеседование","Четыре корневых абстрактных класса: InputStream (байтовое чтение), OutputStream (байтовая запись), Reader (символьное чтение), Writer (символьная запись). Все реализуют Closeable (AutoCloseable). Конкретные реализации делятся на узловые (FileInputStream) и обрабатывающие (BufferedInputStream), используя паттерн Декоратор.",true]