Gewusst wie: Lesen von Binärdateien in Visual BasicHow to: Read From Binary Files in Visual Basic

Das My.Computer.FileSystem-Objekt bietet die ReadAllBytes-Methode zum Lesen von Binärdateien.The My.Computer.FileSystem object provides the ReadAllBytes method for reading from binary files.

Lesen aus einer BinärdateiTo read from a binary file

  • Verwenden Sie die ReadAllBytes-Methode, die den Inhalt einer Datei als Bytearray zurückgibt.Use the ReadAllBytes method, which returns the contents of a file as a byte array. In diesem Beispiel wird aus der Datei C:/Documents and Settings/selfportrait.jpg gelesen.This example reads from the file 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))
    
  • Für große Binärdateien können Sie die Read-Methode des FileStream-Objekts verwenden, um nur für einen bestimmten Zeitraum aus der Datei zu lesen.For large binary files, you can use the Read method of the FileStream object to read from the file only a specified amount at a time. Dann können Sie einschränken, welcher Anteil der Datei für jeden Lesevorgang in den Speicher geladen wird.You can then limit how much of the file is loaded into memory for each read operation. In folgendem Codebeispiel wird eine Datei kopiert und der Aufrufer kann angeben, wie viel der Datei pro Lesevorgang in den Speicher gelesen wird.The following code example copies a file and allows the caller to specify how much of the file is read into memory per read operation.

    ' 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
    

Stabile ProgrammierungRobust Programming

Die folgenden Bedingungen können eine Ausnahme auslösen:The following conditions may cause an exception to be thrown:

  • Der Pfad ist aus einem der folgenden Gründe ungültig: Es handelt sich um eine Zeichenfolge der Länge 0, der Pfad enthält nur Leerzeichen, er enthält ungültige Zeichen, oder es handelt sich um einen Gerätepfad (ArgumentException).The path is not valid for one of the following reasons: it is a zero-length string, it contains only white space, it contains invalid characters, or it is a device path (ArgumentException).

  • Der Pfad ist ungültig, da er Nothing ist (ArgumentNullException).The path is not valid because it is Nothing (ArgumentNullException).

  • Die Datei ist nicht vorhanden (FileNotFoundException).The file does not exist (FileNotFoundException).

  • Die Datei wird von einem anderen Prozess verwendet, oder ein E/A-Fehler tritt auf (IOException).The file is in use by another process, or an I/O error occurs (IOException).

  • Der Pfad überschreitet die im System definierte maximale Länge (PathTooLongException).The path exceeds the system-defined maximum length (PathTooLongException).

  • Der Pfad eines Datei- oder Verzeichnisnamens enthält einen Doppelpunkt (:) oder hat ein ungültiges Format (NotSupportedException).A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).

  • Es ist nicht genügend Arbeitsspeicher vorhanden, um die Zeichenfolge in den Puffer zu schreiben (OutOfMemoryException).There is not enough memory to write the string to buffer (OutOfMemoryException).

  • Dem Benutzer fehlen die erforderlichen Berechtigungen zum Anzeigen des Pfades (SecurityException).The user lacks necessary permissions to view the path (SecurityException).

Beurteilen Sie den Inhalt der Datei nicht anhand des Dateinamens.Do not make decisions about the contents of the file based on the name of the file. Bei der Datei "Form1.vb" handelt es sich zum Beispiel nicht unbedingt um eine Visual Basic-Quelldatei.For example, the file Form1.vb may not be a Visual Basic source file.

Überprüfen Sie alle Eingaben, bevor Sie die Daten in der Anwendung verwenden.Verify all inputs before using the data in your application. Die Datei kann andere Inhalte als erwartet enthalten. Die Methoden zum Lesen aus der Datei können fehlschlagen.The contents of the file may not be what is expected, and methods to read from the file may fail.

Siehe auchSee Also

ReadAllBytes
WriteAllBytes
Lesen aus DateienReading from Files
Gewusst wie: Lesen aus Textdateien mit mehreren FormatenHow to: Read From Text Files with Multiple Formats
Speichern von Daten in der Zwischenablage und Lesen von Daten aus der ZwischenablageStoring Data to and Reading from the Clipboard