Создание байтового массива с использованием длинного типа данных?

StackOverflow https://stackoverflow.com/questions/819775

  •  03-07-2019
  •  | 
  •  

Вопрос

Большую часть времени, когда мы читаем поток файлов в байтовый массив, мы пишем следующий код: -

 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

Но здесь мы должны преобразовать Length в целочисленный тип (строка 2 приведенного выше кода), поскольку мы не можем объявить байтовый массив, используя тип данных long (со строгой опцией). Это хорошая практика? Как обойти эту проблему?

Это было полезно?

Решение

Рекомендуется использовать File.ReadAllBytes вместо всего этого:

Dim input = File.ReadAllBytes(filePath)

Кстати, если ваш файл будет таким большим (более 4 ГБ), вы не захотите загружать все сразу в байтовый массив, так как он займет до 4 ГБ ОЗУ (а в 32-разрядном управляемом процессе его вообще не может быть, даже если у вас больше ОЗУ).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top