Высокоуровневые методы информатики и программирования. Тузовский А.Ф. - 174 стр.

UptoLike

Составители: 

174
9.7. Абстрактный класс Stream
Для того, чтобы не только получать информацию о файлах и вы-
полнять с ним разные операции (например, создание, копирование, пе-
ремещение и удаление), а также читать или записывать данные в файлы,
используется понятие «поток» (stream).
В области ввода/вывода данных, поток представляется виде пор-
ции данных передаваемых между источником и получателем. Потоки
предоставляют общий способ взаимодействия с последовательностью
байт, независимо от того, какой тип устройства (файл, сетевое соедине-
ние, принтер и т.п.) хранит или отображает эти байты. Абстрактный
класс System.IO.Stream определяет набор элементов, предоставляю-
щих поддержку разных типов взаимодействия с устройствами хранения
данных (например, некоторый файл или участок памяти).
Классы, производные от абстрактного базового класса Stream
(рис. 9.1) представляют данные в виде необработанного потока байт,
поэтому работа напрямую с ними достаточно трудоемка. Некоторые
классы производные от Stream поддерживают поиск, т.е. выполняют
определение и изменение текущей позиции в потоке. Основные элемен-
ты класса Stream, показаны в табл. 9.6.
Таблица 9.6.
Элементы класса Stream
Элемент
Описание
CanRead,
CanWrite
определение, поддерживает ли текущий поток операции по
чтению или записи;
Close()
закрытие текущего потока и освобождение всех выделенных
ресурсов (таких, как сокеты и дескрипторы файлов)
связанные с текущим потоком;
Flush()
обновление источника данных или хранилища с помощью
текущего состояния буфера и затем очистка буфера;
Length
определение размера потока в байтах;
Position
определение текущей позиции в потоке;
Read(),
ReadByte()
чтение последовательности байт из потока, начиная с
текущей позиции и перемещение текущей позиции в потоке
на количество прочитанных байтов;
Seek()
задание текущей позиции в потоке;
SetLength()
задание размера потока;
Write(),
WriteByte()
запись последовательности байт в поток и перемещение
текущей позиции в потоке на количество записанных байтов
Для работы с файлами на основе абстрактного класса Stream реа-
лизован класс FileStream, который определяет методы наиболее под-
ходящие для работы с файлами. Это достаточно простой поток, который