Начнем с рассмотрения команды, часто встречающейся при работе с файловыми потоками:
Dim myFileStream As New FileStream("MyFile.txt". FileMode.OpenOrCreate, FileAccess.Write)
Как видно из приведенного фрагмента, эта версия конструктора FileStream получает имя файла (заданное по отношению к текущему каталогу, если не указано полное имя) и два параметра, значения которых относятся к перечисляемым типам FileMode и FileAccess соответственно. Таким образом, в нашем примере конструктор Fi1eStream либо создает файл с именем MyFile.txt в текущем каталоге, либо открывает его, если файл с таким именем уже существует. В любом случае программа сможет записывать данные в файл. Часто встречаются и другие конструкторы класса Fi leStream:
Допустимыми значениями перечисляемого типа FileAccesS являются Read, Write и ReadWri te. Основные значения перечисляемого типа Fi I eMode перечислены в табл. 9.9. Учтите, что некоторые из них требуют особых привилегий для операций с файлами.
Таблица 9.9. Значения перечисляемого типа FileMode
|
Значение |
Описание | ||||
| Append | Открыть существующий файл (или создать несуществующий). Указатель текущей позиции перемещается в конец файла для записи. Используется совместно с FileAccess.Write | ||||
| Create | Создать новый файл. Внимание — существующий файл автоматически стирается! | ||||
| CreateNew | Создать новый файл. Отличается от Create тем, что для существующего файла инициируется исключение IOException | ||||
| Open | Открыть существующий файл. Если файл не существует, инициируется исключение IOException. Используется совместно с FileIOPermissionAccess.Read | ||||
| OpenOrCreate | Открыть или создать файл | ||||
| Truncate | Открыть существующий файл, удалить текущее содержимое | ||||

Метод/свойство |
Описание |
||
Handle (свойство) |
Файловый манипулятор операционной системы для файла, инкапсулированного в объекте FileStream. Свойство доступно для чтения |
||
Length (свойство) |
Размер потока в байтах. Свойство доступно для чтения |
||
Name (свойство) |
Уточненное имя, переданное конструктору FileStream |
||
Position (свойство) |
Текущая позиция для операций чтения или записи в потоке (нумерация позиций начинается с нуля). Свойство доступно для чтения и записи |
||
Close |
Закрывает поток и освобождает все связанные с ним ресурсы |
||
Flush |
Пересылает все данные из буфера в устройство. Автоматически вызывается при вызове Close |
||
Lock(ByVal position As Long, ByVal length As Long) |
Блокирует доступ ко всему файлу или его части со стороны других процессов (нумерация позиций начинается с нуля) |
||
Read(ByVal array() As Byte, ByVal offset As Integer, ByVal count As Integer) |
Читает заданное количество байтов в массив из файлового потока начиная с заданной позиции |
||
ReadByte |
Читает один байт из файла и перемещает указатель текущей позиции на один байт вперед |
||
Seek(ByVal offset As Long, ByVal origin As SeekOrigin) |
Устанавливает указатель текущей позиции в потоке в заданное положение |
||
Unlock(ByVal position As Long, ByVal length As Long) |
Снимает блокировку с ранее заблокированной части файла (нумерация позиций начинается с нуля) |
||
Write(ByVal array() As Byte, ByVal offset As Integer, ByVal count As Integer) |
Записывает заданное количество байт из массива в файловый поток начиная с заданной позиции |
||
WriteByte |
Записывает байт в текущую позицию файлового потока |
||