Sdílet prostřednictvím


Postupy: Čtení z binárních souborů v jazyce Visual Basic

Objekt My.Computer.FileSystem poskytuje metodu ReadAllBytes pro čtení z binárních souborů.

Čtení z binárního souboru

  • Použijte metodu ReadAllBytes , která vrací obsah souboru jako pole bajtů. Tento příklad čte ze souboru 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))
    
  • U velkých binárních souborů můžete použít Read metodu objektu FileStream ke čtení ze souboru pouze zadanou částku najednou. Pak můžete omezit, kolik souboru se načte do paměti pro každou operaci čtení. Následující příklad kódu zkopíruje soubor a umožňuje volajícímu určit, kolik souboru je načteno do paměti pro každou operaci čtení.

    ' 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
    

Robustní programování

Následující podmínky mohou způsobit vyvolání výjimky:

  • Cesta není platná z jednoho z následujících důvodů: jedná se o řetězec nulové délky, obsahuje pouze prázdné znaky, obsahuje neplatné znaky nebo je to cesta zařízení (ArgumentException).

  • Cesta není platná, protože je Nothing (ArgumentNullException).

  • Soubor neexistuje (FileNotFoundException).

  • Soubor se používá jiným procesem nebo dojde k vstupně-výstupní chybě (IOException).

  • Cesta překračuje maximální délku definovanou systémem (PathTooLongException).

  • Název souboru nebo adresáře v cestě obsahuje dvojtečku (:) nebo je v neplatném formátu (NotSupportedException).

  • Není dostatek paměti pro zápis řetězce do vyrovnávací paměti (OutOfMemoryException).

  • Uživatel nemá potřebná oprávnění k zobrazení cesty (SecurityException).

Nerozhodujte o obsahu souboru na základě názvu souboru. Soubor Form1.vb například nemusí být zdrojovým souborem jazyka Visual Basic.

Před použitím dat v aplikaci ověřte všechny vstupy. Obsah souboru nemusí být očekávaný a metody čtení ze souboru mohou selhat.

Viz také