Читайте также:
|
|
Классы Binary Writer и Binary Reader являются прямыми наследниками System.Object. Эти типы позволяют записывать и читать дискретные типы данных в потоки в компактном двоичном формате. В классе BinaryWriter определен многократно перегруженный метод Write() для помещения типов данных в лежащий в основе поток. В дополнение к Write(), класс BinaryWriter предоставляет дополнительные члены, позволяющие получать или устанавливать объекты унаследованных от Stream типов, а также поддерживает произвольный доступ к данным.
Наиболее важные методы выходного потока BinaryWriter:
Член класса | Описание |
BaseStream() | Определяет базовый поток, с которым работает объект BinaryWriter |
Close() | Закрывает поток |
Flush() | Очищает буфер |
Seek() | Устанавливает позицию в текущем потоке |
Write() | Записывает значение в текущий поток |
Наиболее важные методы входного потока BinaryReader:
Член класса | Описание |
BaseStream() | Определяет базовый поток, с которым работает объект BinaryReader |
Close() | Закрывает поток |
PeekChar() | Возвращает следующий символ потока без перемещения внутреннего указателя в потоке |
Read() | Считывает очередной поток байтов или символов и сохраняет в массиве, передаваемом как входной параметр |
ReadBoolean(), ReadByte() и др. | Считывает из потока данные определенного типа |
Двоичный поток открывается на основе базового потока (например, FileStream), при этом двоичный поток будет преобразовывать байтовый поток в значения int-, double-, short- и т.д. Попытка просмотреть двоичный файл через текстовый редактор неинформативна. Двоичный файл просматривается программным путем.
Следует помнить, что объект FileStream, возвращенный методом Filelnfo.OpenWrite(), передается конструктору класса BinaryWriter. Используя эту технику, очень просто организовать по уровням поток перед записью данных. Нужно иметь в виду, что конструктор BinaryWriter принимает любой тип, унаследованный от Stream (т.е. FileStream, MemoryStream или BufferedStream). Таким образом, если необходимо записать двоичные данные в память, просто используйте объект MemoryStream.
6. Навигация по файловой системе: классы для работы с файловой системой.
Одной из самых распространенных задач в рутинной работе программиста является работа с файловой системой. Она включает как навигацию и сбор информации о дисках, папках и файлах, так и отслеживание изменений, происходящих в файловой системе. Задачей многих типов, принадлежащих System.IO, является программная поддержка физических операций с каталогами и файлами.
В пространстве имен System.IO есть четыре класса, предназначенные для работы с физическими файлами и структурой каталогов на диске: Directory, File, DirectoryInfo, FileInfo. С их помощью можно выполнять создание, удаление, перемещение файлов и каталогов, а также получение их свойств.
Классы Directory и File реализуют свои функции через статические методы. Классы DirectoryInfo и FileInfo обладают схожими возможностями, но они реализуются путем создания объектов соответствующих классов. Эти два класса наследуются от абстрактного класса FileSystemInfo, в котором имеются следующие базовые свойства:
¾ Attributes – получить или установить атрибуты для текущего файла или папки;
¾ CreationTime – получить или установить время создания текущего файла или папки;
¾ Exists – определить, существует ли файл или папка;
¾ Exstension – получить расширение файла в виде строки;
¾ FullName – возвратить полный путь к файлу или папке;
¾ LastWriteTime – получить или установить время последней записи в файл или папку;
¾ LastAccessTime – получить или установить время последнего обращения к файлу или папке;
¾ Name – возвратить «простое» имя файла или папки,
а также методы:
¾ Delete – удалить файл или папку;
¾ Refresh – обновить экземпляр класса последними данными о файловой системе.
Класс DirectoryInfo содержит следующие методы и свойство, позволяющие создавать, перемещать, удалять каталоги и подкаталоги:
Член класса | Описание |
Create() CreateSubDirectory() | Создает каталог или подкаталог по указанному пути в файловой системе. |
Delete(true) | Удаляет каталог и все его содержимое. |
GetDirectories() | Возвращает массив строк, представляющих все подкаталоги текущего каталога. |
GetFiles() | Получает файлы текущего каталога в виде массива объектов класса FileInfo. |
MoveTo() | Перемещает каталог и его содержимое в место, соответствующее заданному новому пути. |
Parent | Возвращает родительский каталог. |
Класс FileInfo предоставляет следующую базовую функциональность для доступа к отдельным файлам и управления ими:
Свойства класса | Описание |
Directory | Возвращает объект DirectoryInfo, представляющий папку, в которой расположен файл. |
DirectoryName | Возвращает полный путь к каталогу родителя. |
IsReadOnly | Возвращает или устанавливает флаг, определяющий возможность изменения или удаления файла. |
Length | Возвращает размер файла. |
AppendText() | Создает новый объект StreamWriter, позволяющий добавлять текст в файл. |
CopyTo() | Создает копию файла в другом каталоге. |
Create() | Создает файл с параметрами текущего файла. |
CreateText() | Создает новый объект StreamWriter и новый файл для записи текста. |
Decrypt() Encrypt() | Расшифровывает файл, зашифрованный текущим пользователем. Зашифровывает файл, делая его содержимое доступным только текущему пользователю. |
MoveTo() | Перемещает файл в другой каталог. |
Open() | Открывает файл с заданными возможностями чтения/записи и совместного доступа. |
OpenRead() | Открывает файл только для чтения. |
OpenText() | Открывает файл и возвращает объект StreamReader для чтения текста из файла. |
OpenWrite() | Открывает файл только для записи. |
Replace() | Заменяет файл файлом, созданным по параметрам текущего объекта FileInfo. |
Перечень (enum) FileAttributes. Свойство Attributes, предоставленное объектом FileSystemInfo, обеспечивает получение различной информации о текущем каталоге или файле, и вся она содержится в перечне FileAttributes:
Дата добавления: 2015-09-10; просмотров: 154 | Поможем написать вашу работу | Нарушение авторских прав |