Анализ пространства имен System.IO
Анализ пространства имен System.IO
В .NET пространство имен System.IO является той частью библиотек базовых адресов, которая обслуживает службы ввода-вывода, как для файлов, так и для памяти. Подобно любому другому пространству имен, System.IO определяет свой набор классов, интерфейсов, перечней, структур и делегатов, большинство из которых содержится в mscorlib.dll. Вдобавок к типам, содержащимся в mscorlib.dll, часть членов System.IO содержится в компоновочном блоке System.dll (все проекты в Visual Studio 2005 автоматически устанавливают ссылку на оба эти компоновочных блока, поэтому вам об этом беспокоиться не приходится).
Задачей многих типов, принадлежащих System.IO), является программная поддержка физических операций с каталогами и файлами. Но есть и другие типы, обеспечивающие поддержку операций чтения и записи данных строковых буферов, a также непосредственный доступ к памяти. Чтобы представить вам общую картину функциональных возможностей пространства имен System.IO, в табл. 16.1 описаны его базовые (неабстрактные) классы.
Вдобавок к этим типам, допускающим создание экземпляров, в System.IO определяется целый ряд перечней, а также набор абстрактных классов (Stream, TextReader, TextWriter и т.д.), которые обеспечивают открытый полиморфный интерфейс всем своим производным классам. Более подробная информация об этих типах будет предлагаться в процессе дальнейшего обсуждения материала этой главы.
Таблица 16.1. Ключевые типы пространства имен System.IO
Неабстрактный тип класса ввода-вывода Описание BinaryReader BinaryWriter Позволяют сохранять и читать примитивные типы данных (целые, логические, строковые и другие), как двоичные значения BufferedStream Обеспечивает временное хранилище для потока байтов, которые можно будет направить в другое хранилище позже Directory DirectoryInfо Используются для работы со структурой каталогов машины. Тип Directory предлагает свои функциональные возможности, в основном через статические методы. Тип DirectoryInfo обеспечивает аналогичные возможности с помощью подходящей объектной переменной DriveInfo Этот тип (появившийся в .NET 2.0) предлагает подробную информацию о дисках, установленных на машине File FileInfo Используются для работы с файлами. Тип File предлагает свои функциональные возможности, в основном через статические методы. Тип FileInfo обеспечивает аналогичные возможности с помощью подходящей объектной переменной FileStream Позволяет реализовать произвольный доступ к файлам (например, поиск), когда данные представлены в виде потока байтов FileSystemWatcher Позволяет контролировать изменения внешнего файла MemoryStream Обеспечивает прямой доступ к данным, сохраненным в памяти, а не в физическом файле Path Выполняет операции с типами System.String, содержащими информацию о файлах или каталогах в независимом от платформы виде StreamWriter StreamReader Используются для записи (и чтения) текстовой информации файлов. Эти типы не поддерживают доступ к файлам с произвольной организацией StringWriter StringReader Подобно типам StreamReader/StreamWriter, эти классы тоже обеспечивают обработку текстовой информации. Однако соответствующим хранилищем в данном случае является строковый буфер, а не физический файл