Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Байтовые и символьные потоки

Читайте также:
  1. ГРУЗОВЫЕ ПОТОКИ И ИХ КЛАССИФИКАЦИЯ
  2. Информационные потоки и матрицы общения
  3. Лекция 7. Новые виды СМК и глобальные информационные потоки
  4. Множественные потоки данных
  5. Потоки данных
  6. Потоки и волны

 

В современных версиях определены два типа потоков: байтовые и символьные. (Первоначально разработчикам Java-программ были доступны только байтовые потоки; символьные потоки были реализованы несколько позже.) Байтовые потоки предоставляют удобные средства для ввода и вывода байтов. Они используются, например, при чтении и записи двоичных данных. В особенности они полезны при работе с файлами. Символьные потоки ориентированы на обмен символьными данными. В них используется кодировка Unicode, следовательно, программы, использующие их, легко поддаются интернационализации.

В некоторых случаях символьные потоки обеспечивают более высокую эффектность по сравнению с байтовыми.

Необходимость поддерживать два различных типа потоков привела к созданию двух иерархий классов (одна для байтовых, другая для символьных данных). Из-за того что число классов достаточно велико, на первый взгляд система ввода-вывода кажется сложнее, чем она есть на самом деле. Однако следует помнить, полнофункциональные возможности для байтовых потоков дублируются соответствующими средствами символьных потоков.

Следует заметить, что на самом нижнем уровне все средства ввода-вывода байтово-ориентированы. Символьные потоки лишь предоставляют удобные и эффективные инструменты для поддержки символов.

 

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

 

Для определения байтовых потоков используются две иерархии классов. На вершинах их находятся два абстрактных класса: InputStream и OutputStream.

В InputStream определены элементы, общие для входных байтовых потоков, в OutputStream — элементы, общие для выходных байтовых потоков.

Потомками InputStream и OutputStream являются конкретные подклассы, реализующие различные функциональные возможности и учитывающие особенности обмена с различными устройствами, например файлами на диске.

Классы байтовых потоков приведены в таблице 1. Не следует пугаться большого числа классов: изучив один из них, легко освоить остальные.

 

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

Класс байтового потока Описание
InputStream Абстрактный класс, описывающий входной поток
OutputStream Абстрактный класс, описывающий выходной поток
PrintStream Выходной поток, содержащий методы print() и println()
FileInputStream Входной поток, осуществляющий чтение из файла
FileOutputStream Выходной поток, осуществляющий запись в файл
RandomAccessFile Класс, поддерживающий обмен с файлом произвольного доступа
BufferedInputStream Буферизованный входной поток
BufferedOutputStream Буферизованный выходной поток
ByteArrayInputStream Входной поток, осуществляющий чтение из байт-массива
ByteArrayOutputStream Выходной поток, осуществляющий запись в байт-массив
FilterInputStream Подкласс InputStream
FilterOutputStream Подкласс OutputStream
DataInputStream Входной поток, содержащий методы для чтения стандартных типов данных Java
DataOutputStream Выходной поток, содержащий методы для записи стандартных типов данных Java
ObjectInputStream Входной поток для объектов
ObjectOutputStream Выходной поток для объектов
PipedInputStream Входной поток для организации конвейерной обработки
PipedOutputStream Выходной поток для организации конвейерной обработки
PushbackInputStream Входной поток, позволяющий возвращать в поток прочитанные байты
SequenceInputStream Входной поток, который представляет собой сочетания нескольких входных потоков и организует последовательное чтение одного потока за другим


Дата добавления: 2015-07-10; просмотров: 180 | Нарушение авторских прав


Читайте в этой же книге: Использование байтовых потоков | FileInputStream(String fileName) throws FileNotFoundException | Чтение и запись двоичных данных | Void seek(long newPos) throws IOException | Чтение символов | Использование оболочек для преобразования строк, представляющих числа |
<== предыдущая страница | следующая страница ==>
Настоящѣе и Будущѣе Руской Рѣчи.| Классы символьных потоков

mybiblioteka.su - 2015-2024 год. (0.006 сек.)