Criando uma matriz de byte usando o tipo de dados longo?
-
03-07-2019 - |
Pergunta
Na maioria das vezes, quando lemos o fluxo de arquivos em uma matriz de bytes, escrevemos o seguinte código:-
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
Mas aqui temos que converter o comprimento em um tipo inteiro (linha 2 do código acima), pois não podemos declarar uma matriz de bytes usando o tipo de dados longo (com opção rigorosa). Esta é uma boa prática? Qual é o trabalho para esse problema?
Solução
A boa prática é usar File.ReadAllBytes
em vez de tudo:
Dim input = File.ReadAllBytes(filePath)
A propósito, se o seu arquivo será tão grande (Mais de 4 GB), você não gostaria de carregar tudo de uma só vez em uma matriz de bytes, pois ele assumirá 4 GB de RAM (e em um processo gerenciado de 32 bits, você não pode ter isso, mesmo que você tem mais RAM).
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow