ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 04.12.2023
Просмотров: 26
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
1) Чтотакоепотокиввода-вывода?КакэтореализовановJava?
В Java основной функционал работы с потоками сосредоточен в классах из пакета java.io. Ключевым понятием здесь является понятие потока. В данном случае мы будем говорить о потоке (stream), как об абстракции, которая используется для
чтения или записи информации (файлов, сокетов, текста консоли и т.д.).
Объект, из которого можно считать данные, называется потоком ввода, а объект, в который можно записывать данные, - потоком вывода. Например, если надо считать содержание файла, то применяется поток ввода, а если надо записать в файл - то поток вывода.
В основе всех классов, управляющих потоками ба
йтов, находятся два абстрактных класса: InputStream (представляющий потоки ввода) и OutputStream (представляющий потоки вывода).
Но поскольку работать с байтами не очень удобно, то для работы с потоками символов были добавлены абстрактные классы Reader (для чтения потоков символов) и Writer (для записи потоков символов). Все остальные классы, работающие с потоками, яв
ляются наследниками этих абстрактных классов.
Какие интерфейсы реализует InputStream/ OutputStream/ Reader/
Writer?
InputStream реализует интерфейсы: Closeable и AutoCloseable OutputStream реализует интерфейсы: Closeable, Flushable, AutoCloseable Reader реализует интерфейсы: Closeable, AutoCloseable, Readable
Writer реализует интерфейсы: Closeable, Flushable
, Appendable, AutoCloseable
На каком паттерне основана иерархия потоков ввода/вывода?
Объекты классов Java, которые используются для ввода/вывода, для обеспечения необходимой функциональности наслаиваются друг на друга. Такая модель взаимодействия объектов поддерживается в паттерне
«Декоратор». В этом паттерне при создании потока нужно использовать несколь