Question

La plupart du temps, lorsque nous lisons le flux de fichiers dans un tableau d'octets, nous écrivons le code suivant: -

 Dim inputStream As New System.IO.FileStream(filePath, IO.FileMode.Open)
 Dim fileLength As Integer= CType(inputStream.Length, Integer)
 Dim input(fileLength) As Byte

 Using inputStream
     inputStream.Read(input, 0, fileLength)
 End Using

Mais ici, nous devons convertir Length en un type entier (ligne 2 du code ci-dessus) car nous ne pouvons pas déclarer un tableau d'octets en utilisant le type de données long (avec l'option stricte activée). Est-ce une bonne pratique? Quel est le travail autour de ce problème?

Était-ce utile?

La solution

La bonne pratique consiste à utiliser File.ReadAllBytes au lieu du tout:

Dim input = File.ReadAllBytes(filePath)

À propos, si votre fichier doit être aussi volumineux (plus de 4 Go), vous ne voudriez pas le charger en une fois dans un tableau d'octets, car cela prendrait jusqu'à 4 Go de RAM (et dans un processus géré 32 bits, vous ne pouvez pas l'avoir du tout, même si vous avez plus de RAM).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top