Символьные потоки определены в двух иерархиях классов. Наверху этой иерархии два абстрактных класса: Reader и Writer. Они обрабатывают потоки символов Unicode. В Java существуют несколько конкретных подклассов каждого из них. Классы символьных потоков показаны в табл. 12.2.
Абстрактные классы Reader и Writer определяют несколько ключевых методов, которые реализуются другими поточными классами. Два самых важных метода — read() и write(), которые читают и записывают символы данных, соответственно. Они переопределяются производными поточными классами.
Таблица 12.1. в
Таблица 12.1. Классы байтовых потоков
Поточный класс
Значение
BufferedlnputStream
Буфериэированный поток ввода
BufferedOutputStream
Буфериэированный поток вывода
ByteArrayInputStream
Поток ввода, который читает из байт-массива
ByteArrayOutputStream
Поток вывода, который записывает в байт-массив
DatalnputStream
Поток ввода, который содержит методы для чтения данных стандартных типов Java
DataOutputStream
Поток вывода, который содержит методы для записи данных стандартных типов Java
FilelnputStream
Поток ввода, который читает из файла
FileOutputStream
Поток вывода, который записывает в файл
FilterlnputStream
Реализует InputStream
FilterOutputStream
Реализует OutputStream
InputStream
Абстрактный класс, который описывает поточный ввод
OutputStream
Абстрактный класс, который описывает поточный вывод
PipedlnputStream
Канал ввода
PipedOutputStream
Канал вывода
PrintStream
Поток вывода, который поддерживает print () и println()
PushbacklnputStream
Поток (ввода), который поддерживает однобайтовую операцию "unget", возвращающую байт в поток ввода
RandomAccessFile
Поддерживает ввод/вывод файла произвольного доступа
SequencelnputStream
Поток ввода, который является комбинацией двух или нескольких потоков ввода, которые будут читаться последовательно, один за другим