Guide pratique pour lire des fichiers binaires en Visual BasicHow to: Read From Binary Files in Visual Basic

L’objet My.Computer.FileSystem fournit la méthode ReadAllBytes pour la lecture de fichiers binaires.The My.Computer.FileSystem object provides the ReadAllBytes method for reading from binary files.

Pour lire un fichier binaireTo read from a binary file

  • Utilisez la méthode ReadAllBytes, qui retourne le contenu d’un fichier en tant que tableau d’octets.Use the ReadAllBytes method, which returns the contents of a file as a byte array. Cet exemple lit le fichier C:/Documents and Settings/selfportrait.jpg.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))
    
  • Pour les fichiers binaires volumineux, vous pouvez utiliser la méthode Read de l’objet FileStream pour lire le fichier bloc par bloc.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. Vous pouvez alors limiter la quantité de données du fichier chargées en mémoire pour chaque opération de lecture.You can then limit how much of the file is loaded into memory for each read operation. L’exemple de code suivant copie un fichier et permet à l’appelant de spécifier la quantité de données lues en mémoire pour chaque opération de lecture.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
    

Programmation fiableRobust Programming

Les conditions ci-dessous peuvent générer une exception :The following conditions may cause an exception to be thrown:

  • Le chemin d'accès n'est pas valide pour une des raisons suivantes : il s'agit d'une chaîne de longueur nulle ; il ne contient que des espaces blancs ; il contient des caractères non valides ou il s'agit d'un chemin d'accès de périphérique (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).

  • Le chemin n’est pas valide, car il a la valeur Nothing (ArgumentNullException).The path is not valid because it is Nothing (ArgumentNullException).

  • Le fichier n'existe pas (FileNotFoundException).The file does not exist (FileNotFoundException).

  • Le fichier est utilisé par un autre processus, ou une erreur E/S se produit (IOException).The file is in use by another process, or an I/O error occurs (IOException).

  • Le chemin dépasse la longueur maximale définie par le système (PathTooLongException).The path exceeds the system-defined maximum length (PathTooLongException).

  • Un nom de fichier ou de répertoire du chemin d'accès contient un signe deux-points (:) ou n'a pas un format correct (NotSupportedException).A file or directory name in the path contains a colon (:) or is in an invalid format (NotSupportedException).

  • Il n'y a pas assez de mémoire pour écrire la chaîne dans la mémoire tampon (OutOfMemoryException).There is not enough memory to write the string to buffer (OutOfMemoryException).

  • L'utilisateur n'a pas les autorisations nécessaires pour afficher le chemin d'accès (SecurityException).The user lacks necessary permissions to view the path (SecurityException).

Ne vous basez pas sur le nom d'un fichier pour en déterminer le contenu.Do not make decisions about the contents of the file based on the name of the file. Par exemple, le fichier Form1.vb peut ne pas être un fichier source Visual Basic.For example, the file Form1.vb may not be a Visual Basic source file.

Vérifiez toutes les entrées avant d'utiliser les données dans votre application.Verify all inputs before using the data in your application. Le fichier n'a peut-être pas le contenu attendu, et les méthodes utilisées pour lire le fichier peuvent échouer.The contents of the file may not be what is expected, and methods to read from the file may fail.

Voir aussiSee Also

ReadAllBytes
WriteAllBytes
Lecture à partir de fichiersReading from Files
Guide pratique : lire des fichiers texte avec plusieurs formatsHow to: Read From Text Files with Multiple Formats
Stockage de données dans le Presse-papiers et lecture du Presse-papiersStoring Data to and Reading from the Clipboard