Класс BufferedStream
Класс BufferedStream используется для буферизованных потоковых операций чтения и записи (но не той и другой одновременно) в другой поток. Этот класс создает буфер в памяти (по умолчанию размер буфера равен 4 Кбайт, но это значение может быть изменено с помощью перегруженного конструктора), который используется для кэширования данных. В результате повышается производительность операций чтения и записи — за счет сокращения числа обращений к функциям операционной системы.
С целью создания буфера для существующего потока используется конструктор класса BufferedStream, а в качестве входного параметра указывается существующий поток. Дальнейшие операции выполняются через методы класса BufferedStream, а все изменения в буфере сохраняются в потоке вызовом метода Flush.
Класс FileStream
Класс FileStream используется для чтения и записи файлов. Мы можем использовать этот класс для чтения и записи байтов, символов, строк и других типов данных. Класс FileStream поддерживает синхронное и асинхронное открытие файлов, синхронные операции чтения и записи (методы Read и Write), а также асинхронные операции чтения и записи (методы BeginRead и BeginWrite). Асинхронные операции завершаются вызовом методов EndRead и EndWrite соответственно. Режим по умолчанию — синхронный; для проверки режима мы используем свойство IsAsync. Для асинхронных операций необходим объект WaitHandle. Метод Seek используется для произвольного доступа к файлам. Свойство Position позволяет нам узнать или установить текущую позицию в потоке. Методы Lock и Unlock служат для предотвращения доступа ко всему файлу или к его части, а также для отмены ранее установленного запрета доступа. Свойство Length возвращает длину потока в байтах, а метод SetLength служит для задания длины потока. Методы ReadByte и WriteByte используются для чтения и записи одного байта. Для других примитивных типов нам необходимы классы BinaryReader и BinaryWriter соответственно.
От класса FileStream наследует класс IsolatedStorageFileSystem (пространство имен System.IO.IsolatedStorage), служащий для чтения, записи и создания файлов в изолированном хранилище. Изолированное хранилище предоставляет в наше распоряжение виртуальную файловую систему, позволяющую читать и записывать данные, недоступные извне. Изолированное хранилище обеспечивает изоляцию данных на уровне пользователя, сборки или домена приложения.
Класс MemoryStream
Класс MemoryStream может использоваться для создания потока, содержимое которого хранится не на диске и не в сети, а в памяти. Этот класс задействует байтовый массив, который может иметь либо фиксированную, либо произвольную длину. В последнем случае мы можем изменять размер массива, читать из него и записывать в него. Что касается потока с фиксированной длиной, то в него мы можем только записывать.
Для того чтобы выяснить число байтов, выделенных под поток в памяти, мы пользуемся свойством Capacity, возвращающим данные типа Integer. Свойство Length возвращает реальное число байтов в потоке (значение типа Long), а метод GetBuffer() возвращает массив байтов, в котором располагается поток. Для сохранения всего содержимого потока в байтовом массиве используется метод ToArray(). Метод WriteTo(Stream) служит для копирования всего потока в другой поток.
Дата добавления: 2015-10-26; просмотров: 893;