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


Запись в файл - часть 2


/p>

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

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

Option Strict On Imports System.IO

Module Modulel

Sub Main()

Dim i As Integer

Dim theBytes(255) As Byte

For i = 0 To 255

theBytes(i) = CByte(i)

Next

Dim myFileStream As FileStream

Try

myFileStream = New FileStream("C:\foo",

Fi1eMode.OpenOrCreate. FileAccess.Write)

myFlleStream.Write(theBytes, 0. 256) Finally

If Not (myFileStream Is Nothing) Then

myFileStream.Close()

End Try

DisplayAFile("C:\foo")

End Sub

End Module

Рис. 9.2. Запись двоичных данных в файл

После выполнения этого фрагмента записанные данные можно прочитать методом Read, а также воспользоваться методом Seek для перехода к произвольной позиции в файле. Впрочем, как это всегда бывает при работе с неструктурированными потоками байтов, вам придется самостоятельно преобразовать двоичные данные в более полезный формат. В результате сейчас трудно найти более содержательный пример, чем простой вывод записанных чисел процедурой, приведенной ниже:

Sub ReadDataBack()

Dim myFileStream As Stream.i As Integer Try

myFileStream = New FileStream("C:\foo",

FileMode.Open. FileAccess.Read)

For i = 0 To 255

Console.Write(myFileStream.ReadByte) Next

Catch e As Exception MsgBox(e.Message)

Finally

If Not (myFileStream Is Nothing) Then

myFileStream.Close()

End Try

End Sub

Метод Length базового класса Stream всегда позволяет прочитать нужное количество байтов в цикле независимо от структуры файла. Например, следующая процедура читает файл по одному байту.


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



Книжный магазин