Udostępnij za pośrednictwem


Porady: odczyt z plików binarnych w Visual Basic

Obiekt My.Computer.FileSystem udostępnia metodę ReadAllBytes odczytywania z plików binarnych.

Odczytywanie z pliku binarnego

  • ReadAllBytes Użyj metody , która zwraca zawartość pliku jako tablicę bajtów. Ten przykład odczytuje z pliku 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))
    
  • W przypadku dużych plików binarnych można użyć Read metody FileStream obiektu do odczytu z pliku tylko określonej ilości w danym momencie. Następnie można ograniczyć ilość pliku załadowanego do pamięci dla każdej operacji odczytu. Poniższy przykład kodu kopiuje plik i umożliwia obiektowi wywołującym określenie, ile plików jest odczytywanych do pamięci na operację odczytu.

    ' 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
    

Niezawodne programowanie

Następujące warunki mogą spowodować zgłoszenie wyjątku:

  • Ścieżka jest nieprawidłowa z jednego z następujących powodów: jest to ciąg o zerowej długości, zawiera tylko białe znaki, zawiera nieprawidłowe znaki lub jest ścieżką urządzenia (ArgumentException).

  • Ścieżka jest nieprawidłowa, ponieważ jest Nothing (ArgumentNullException).

  • Plik nie istnieje (FileNotFoundException).

  • Plik jest używany przez inny proces lub występuje błąd we/wy (IOException).

  • Ścieżka przekracza zdefiniowaną przez system maksymalną długość (PathTooLongException).

  • Nazwa pliku lub katalogu w ścieżce zawiera dwukropek (:) lub jest w nieprawidłowym formacie (NotSupportedException).

  • Za mało pamięci, aby zapisać ciąg do buforu (OutOfMemoryException).

  • Użytkownik nie ma niezbędnych uprawnień do wyświetlania ścieżki (SecurityException).

Nie należy podejmować decyzji dotyczących zawartości pliku na podstawie rozszerzenia nazwy pliku. Na przykład plik Form1.vb może nie być plikiem źródłowym języka Visual Basic.

Sprawdź wszystkie dane wejściowe, zanim użyjesz danych w aplikacji. Zawartość pliku może się różnić od oczekiwanej i metody odczytu z pliku nie zadziałają.

Zobacz też