Иллюстрированный самоучитель по VB.NET


Потоки данных - часть 2


/p>

Все классы иерархии Stream поддерживают метод Close, освобождающий удерживаемые ресурсы операционной системы (например, файловые манипуляторы или сетевые соединения), поэтому практически во всех программах, работающих с потоками, рекомендуется закрывать поток в блоке Try-Catch-Final 1у. Учтите, что вызов Close в секции Finally требует предварительной проверки, поскольку этот метод вызывается лишь для существующих объектов потоков, созданных успешным вызовом конструктора. Проверка перед вызовом Close в секции Final ly выглядит примерно так:

Finally

If Not (myFileStream Is Nothing) Then myFileStream.Close()

End Try

Рассмотрите и такую возможность, как реализация IDisposable в классах, выполняющих операции с файлами, и закрытие всех открытых потоков методом Dispose.

Основные классы, производные от Stream, перечислены в табл. 9.8.

Таблица 9.8. Основные классы, производные от Stream

Класс

Описание

FileStream Произвольный доступ к файлам
MemoryStream Представляет блок памяти (часто используется при работе с буферами)
NetworkStream Данные, полученные в виде потока по сетевому соединению. Принадлежит пространству имен System. Net. Sockets
CryptoStream Шифровка и расшифровка данных. Принадлежит пространству имен System. Security. Cryptography
BufferedStream «Оболочка» для поддержки буферизации в потоках, не обладающих этой возможностью (при использовании позволяет задать размер буфера). Например, автоматическая буферизация ввода используется в файловых потоках, но отсутствует в сетевых потоках. Если потребуется организовать буферизацию для сетевого потока, воспользуйтесь классом BufferedStream и методикой, описанной далее в этой главе

В .NET Framework входят классы для работы с XML, спроектированные по образцу класса Stream. Впрочем, пространства имен XML в .NET велики и сложны, и о них вполне можно было бы написать отдельную книгу.




- Начало -  - Назад -  - Вперед -