Классы байтовых потоков
Байтовые потоки определены в двух иерархиях классов. На вершине находятся абстрактные классы 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 | Входной поток, представляющий собой комбинацию двух и более входных потоков, которые читаются совместно — один после другого. |