Классы байтовых потоков

Байтовые потоки определены в двух иерархиях классов. На вершине находятся абстрактные классы InputStream и OutputStream. Каждый из этих абстрактных классов имеет несколько реальных подклассов, которые управляют различиями между различными устройствами, такими как дисковые файлы, сетевые подключения и даже буферы памяти. Классы байтовых потоков перечислены в табл. 13.1. Некоторые из этих классов описываются ниже в разделе, а другие — во второй части. Помните, что для использования потоковых классов необходимо импортировать java.io.

Абстрактные классы InputStream и OutputStream определяют несколько ключевых методов, которые реализуют другие потоковые классы. Два наиболее важных — это read () и write (), которые, соответственно, читают и пишут байты данных. Оба метода объявлены как абстрактные внутри InputStream и OutputStream. В классах-наследниках они переопределяются.

Таблица 13.1. Классы байтовых потоков

Потоковый класс Назначение
BufferedInputStream Буферизированный входной поток.
BufferedOutputStream Буферизированный выходной поток.
ByteArrayInputStream Входной поток, читающий из массива байт.
ByteArrayOutputStream Выходной поток, записывающий в массив байт.
DataInputStream Входной поток, включающий методы для чтения стандартных типов данных Java.
DataOutputStream Выходной поток, включающий методы для записи стандартных типов данных Java.
FilelnputStream Входной поток, читающий из файла.
FileOutputStream Выходной поток, записывающий в файл.
FilterInputStream Реализация InputStream.
FilterOutputStream Реализация OutputStream.
InputStream Абстрактный класс, описывающий поток ввода.
ObjectlnputStream Входной поток для объектов.
ObjectOutputStream Выходной поток для объектов.
OutputStream Абстрактный класс, описывающий поток вывода.
PipedlnputStream Входной канал (например, межпрограммный).
PipedOutputStream Выходной канал.
PrintStream Выходной поток, включающий print () и println ().
PushbacklnputStream Входной поток, поддерживающий однобайтовый возврат во входной поток.
RandomAccessFile Поддерживает файловый ввод-вывод с произвольным доступом.
SequencelnputStream Входной поток, представляющий собой комбинацию двух и более входных потоков, которые читаются совместно — один после другого.