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

Запись в файл

Начнем с рассмотрения команды, часто встречающейся при работе с файловыми потоками:

Dim myFileStream As New FileStream("MyFile.txt". FileMode.OpenOrCreate, FileAccess.Write)

Как видно из приведенного фрагмента, эта версия конструктора FileStream получает имя файла (заданное по отношению к текущему каталогу, если не указано полное имя) и два параметра, значения которых относятся к перечисляемым типам FileMode и FileAccess соответственно. Таким образом, в нашем примере конструктор FileStream либо создает файл с именем MyFile.txt в текущем каталоге, либо открывает его, если файл с таким именем уже существует. В любом случае программа сможет записывать данные в файл.

Часто встречаются и другие конструкторы класса FileStream:

  • Sub New(String, FileMode): создает объект FileStream с заданным именем и в заданном режиме (см. ниже описание FileMode).
  • Sub New(String, FileMode, FileAccess): создает объект FileStream в заданном режиме, с заданными правами чтения/записи и совместного доступа.

Допустимыми значениями перечисляемого типа FileAccesS являются Read, Write и ReadWrite. Основные значения перечисляемого типа FiIeMode перечислены в табл. 9.9. Учтите, что некоторые из них требуют особых привилегий для операций с файлами.

Таблица 9.9. Значения перечисляемого типа FileMode.

Значение Описание
Append Открыть существующий файл (или создать несуществующий). Указатель текущей позиции перемещается в конец файла для записи. Используется совместно с FileAccess.Write
Create Создать новый файл. Внимание – существующий файл автоматически стирается!
CreateNew Создать новый файл. Отличается от Create тем, что для существующего файла инициируется исключение IOException
Open Открыть существующий файл. Если файл не существует, инициируется исключение IOException. Используется совместно с FileIOPermissionAccess.Read
OpenOrCreate Открыть или создать файл
Truncate Открыть существующий файл, удалить текущее содержимое

Примечание
Объекты FHeStream также возвращаются следующими методами классов File и FHelnfo: File.Create, File.Open, File.OpenRead, File.OpenWrite, FHeInfo.Create, FHelnfo.Open, FHelnfo.OpenRead
.

Хотя файловые потоки поддерживают произвольный доступ методом Seek, базовый класс – FileStream ориентирован исключительно на операции с байтами, поэтому его возможности ограничиваются простой записью байта или массива байтов методами WriteByte и Write.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.