Créer un tableau d'octets en utilisant le type de données long?
-
03-07-2019 - |
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?
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).