Freigeben über


Vorgehensweise: Lesen aus Binärdateien in Visual Basic

Das My.Computer.FileSystem Objekt stellt die ReadAllBytes Methode zum Lesen aus Binärdateien bereit.

So lesen Sie aus einer Binärdatei

  • Verwenden Sie die ReadAllBytes Methode, die den Inhalt einer Datei als Bytearray zurückgibt. In diesem Beispiel wird aus der Datei C:/Documents and Settings/selfportrait.jpg gelesen.

    Dim bytes = My.Computer.FileSystem.ReadAllBytes(
                  "C:/Documents and Settings/selfportrait.jpg")
    PictureBox1.Image = Image.FromStream(New IO.MemoryStream(bytes))
    
  • Bei großen Binärdateien können Sie die Read Methode des FileStream Objekts verwenden, um aus der Datei nur eine bestimmte Menge gleichzeitig zu lesen. Sie können dann einschränken, wie viel der Datei für jeden Lesevorgang in den Arbeitsspeicher geladen wird. Im folgenden Codebeispiel wird eine Datei kopiert, und der Aufrufer kann angeben, wie viel der Datei pro Lesevorgang in den Arbeitsspeicher gelesen wird.

    ' 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
    

Robuste Programmierung

Die folgenden Bedingungen können dazu führen, dass eine Ausnahme ausgelöst wird:

  • Der Pfad ist aus einem der folgenden Gründe ungültig: Es handelt sich um eine leere Zeichenfolge, es enthält nur Leerzeichen, es enthält ungültige Zeichen, oder es handelt sich um einen Gerätepfad (ArgumentException).

  • Der Pfad ist ungültig, da er Nothing (ArgumentNullException) ist.

  • Die Datei ist nicht vorhanden (FileNotFoundException).

  • Die Datei wird von einem anderen Prozess verwendet, oder ein E/A-Fehler tritt auf (IOException).

  • Der Pfad überschreitet die vom System definierte maximale Länge (PathTooLongException).

  • Ein Datei- oder Verzeichnisname im Pfad enthält einen Doppelpunkt (:) oder ist in einem ungültigen Format (NotSupportedException).

  • Es ist nicht genügend Arbeitsspeicher vorhanden, um die Zeichenfolge in Puffer zu schreiben (OutOfMemoryException).

  • Der Benutzer verfügt nicht über erforderliche Berechtigungen zum Anzeigen des Pfads (SecurityException).

Treffen Sie keine Entscheidungen über den Inhalt der Datei basierend auf dem Namen der Datei. Beispielsweise ist die Datei Form1.vb möglicherweise keine Visual Basic-Quelldatei.

Überprüfen Sie alle Eingaben, bevor Sie die Daten in Ihrer Anwendung verwenden. Der Inhalt der Datei ist möglicherweise nicht das, was erwartet wird, und Methoden zum Lesen aus der Datei schlagen möglicherweise fehl.

Siehe auch