Использование потоков (stream) данных в Java

Author: Tatyana Milkina

1. Потоки данных

В Java для описания работы по вводу/выводу используется специальное понятие – поток данных (stream). Поток данных связан с некоторым источником или приемником данных, способных получать или предоставлять информацию. Соответственно, потоки делятся на входные - читающие данные, и на выходные - передающие (записывающие) данные.

Потоки данных фото

Потоки данных — это упорядоченные последовательности данных, которым соответствует определенный источник (source) (для потоков ввода) или получатель (destination) (для потоков вывода). В Java потоки ввода вывода реализуются в пределах иерархии классов, Определенных в пакете java.io. Классы ввода вывода Java исключают необходимость вникать в особенности низкоуровневой организации операционных систем и предоставляют доступ к системным ресурсам посредством методов работы с файлами и иных инструментов.

Все потоки ввода вывода ведут себя одинаково, несмотря на отличия в конкретных физических устройствах, с которыми они связаны. Одни и те же классы и методы ввода вывода применимы к разнотипным устройствам. Абстракция потока ввода может охватывать разные типы ввода: из файла на диске, клавиатуры или сетевого соединения.

2. Типы потоков данных

В JAVA существует 2 типа потоков данных:

  • Символьные потоки (text-streams, последовательности 16-битовых символов Unicode), содержащие символы.Символьные потоки фото
  • Байтовые потоки (binary-streams), содержащие восьми битную информацию.Байтовые потоки фото

Классы разделяются также по направлению потоков:

  • Потоки ввода (input)
  • Потоки вывода (output)

В Java определены четыре основных абстрактных классов для работы с потоками:

Основные абстрактные классы потоков данных фото

3. Общая схема работы с потоками в Java

Общая схема работы с потоками в Java описывается тремя простыми шагами:

  1. Создать потоковый объект и ассоциировать его с файлом на диске.
  2. Пока есть информация, читать/писать очередные данные в/из потока.
  3. Закрыть поток.
Read also:
Comments