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?

Foi útil?

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
scroll top