Практическое руководство. Чтение из двоичного файла в Visual Basic
Объект My.Computer.FileSystem предоставляет метод ReadAllBytes для чтения данных из двоичных файлов.
Чтение данных из двоичного файла.
Используйте метод ReadAllBytes, который возвращает содержимое файла в виде массива байтов. В этом примере производится чтение данных из файла C:/Documents and Settings/selfportrait.jpg.
Dim bytes = My.Computer.FileSystem.ReadAllBytes( "C:/Documents and Settings/selfportrait.jpg") PictureBox1.Image = Image.FromStream(New IO.MemoryStream(bytes))
При работе с большими двоичными файлами можно использовать метод Read объекта FileStream, чтобы за раз считывать из файла только заданный объем данных. Затем можно ограничить объем файла, загружаемый в память во время каждой операции чтения. В следующем примере кода показано копирование файла, причем вызывающий объект задает, какая часть файла помещается в память при выполнении каждой операции чтения.
' This method does not trap for exceptions. If an exception is ' encountered opening the file to be copied or writing to the ' destination location, then the exception will be thrown to ' the requestor. Public Sub CopyBinaryFile(ByVal path As String, ByVal copyPath As String, ByVal bufferSize As Integer, ByVal overwrite As Boolean) Dim inputFile = IO.File.Open(path, IO.FileMode.Open) If overwrite AndAlso My.Computer.FileSystem.FileExists(copyPath) Then My.Computer.FileSystem.DeleteFile(copyPath) End If ' Adjust array length for VB array declaration. Dim bytes = New Byte(bufferSize - 1) {} While inputFile.Read(bytes, 0, bufferSize) > 0 My.Computer.FileSystem.WriteAllBytes(copyPath, bytes, True) End While inputFile.Close() End Sub
Отказоустойчивость
Исключение может возникнуть в следующих случаях.
Путь является недопустимым по одной из следующих причин: Он является строкой нулевой длины, содержит только пробелы, содержит недопустимые символы, или это путь устройства (ArgumentException).
Путь не является допустимым, поскольку он равен Nothing (ArgumentNullException).
Файл не существует (FileNotFoundException).
Файл уже используется другим процессом или происходит ошибка ввода-вывода (IOException).
Длина пути превышает максимальную длину, определенную в системе (PathTooLongException).
Имя файла или каталога в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).
Не хватает памяти для записи строки в буфер (OutOfMemoryException).
У пользователя отсутствуют необходимые разрешения на просмотр пути (SecurityException).
По имени файла не всегда можно с уверенностью судить о его содержимом. Например, файл с именем Form1.vb может и не являться исходным файлом Visual Basic.
Следует проверять все входные данные перед использованием их в приложении. Содержимое файла может отличаться от ожидаемого, поэтому может не удаться прочесть файл с помощью методов чтения.
См. также
Задачи
Практическое руководство. Чтение текстовых файлов различных форматов в Visual Basic
Ссылки
Другие ресурсы
Чтение из файлов в Visual Basic
Запись данных в буфер обмена и чтение их оттуда (Visual Basic)