Pregunta

La mayoría de las veces, cuando leemos el flujo de archivos en una matriz de bytes, escribimos el siguiente 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

Pero aquí tenemos que convertir la Longitud en un tipo entero (línea 2 del código anterior) ya que no podemos declarar una matriz de bytes con el tipo de datos largo (con la opción estricta activada). ¿Es esta una buena practica? ¿Cuál es la solución para este problema?

¿Fue útil?

Solución

La buena práctica es usar File.ReadAllBytes en lugar de todo:

Dim input = File.ReadAllBytes(filePath)

Por cierto, si su archivo va a ser tan grande (más de 4 GB), no querrá cargarlo todo de una vez en una matriz de bytes, ya que tomará hasta 4 GB de RAM (y en un proceso administrado de 32 bits, no puedes tenerlo en absoluto, incluso si tienes más RAM).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top