Создание байтового массива с использованием длинного типа данных?
-
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-разрядном управляемом процессе его вообще не может быть, даже если у вас больше ОЗУ).
Не связан с StackOverflow