Partilhar via


Como: ler arquivos binários em Visual Basic

O objeto My.Computer.FileSystem fornece o método ReadAllBytes para leitura de arquivos binários.

Para ler de um arquivo binário

  • Use o método ReadAllBytes que retorna o conteúdo de um arquivo como uma matriz de bytes.Este exemplo lê a partir do arquivo 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))
    
  • Para arquivos binários grandes, você pode usar o Read método da FileStream o objeto para ler o arquivo apenas uma quantidade especificada por vez.Você pode limitar a quantidade do arquivo é carregado na memória para cada operação de leitura.O exemplo de código a seguir copia um arquivo e permite que o chamador especificar quanto do arquivo é lido na memória por operação de leitura.

    ' 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
    

Programação robusta

As seguintes condições podem causar uma exceção:

  • O caminho não é válido por uma das razões a seguir: ele é uma sequência de comprimento zero, ele contém somente espaço em branco, ele contém caracteres inválidos, ou é um caminho de dispositivo (ArgumentException).

  • O caminho não é válido porque ele é Nothing (ArgumentNullException).

  • O arquivo não existe (FileNotFoundException).

  • O arquivo está em uso por outro processo, ou ocorre um erro de I/O (IOException).

  • O caminho excede o comprimento máximo definido pelo sistema (PathTooLongException).

  • Um nome de arquivo ou de diretório no caminho contém dois-pontos (:) ou está em um formato inválido (NotSupportedException).

  • Não há memória suficiente para gravar a sequência de caracteres no buffer (OutOfMemoryException).

  • O usuário não possui permissões necessárias para exibir o caminho (SecurityException).

Não faça decisões sobre o conteúdo do arquivo com base no nome do arquivo.Por exemplo, o arquivo Form1.vb pode não ser um arquivo fonte do Visual Basic.

Verifique todas as entradas antes de usar os dados no seu aplicativo.O conteúdo do arquivo pode não ser esperado e métodos para ler o arquivo podem falhar.

Consulte também

Tarefas

Como: ler arquivos de texto com vários formatos de Visual Basic

Referência

ReadAllBytes

WriteAllBytes

Outros recursos

Leitura de arquivos no Visual Basic

Armazenando dados e a leitura da área de transferência (Visual Basic)