Diferencia entre una matriz de bytes y MemoryStream
-
08-06-2019 - |
Pregunta
Estoy leyendo un archivo binario en un programa de análisis.Necesitaré recorrer el archivo y buscar ciertos marcadores para poder dividir el archivo y pasar esas partes a los constructores de sus respectivos objetos.
¿Existe alguna ventaja en mantener el archivo como una secuencia, ya sea MemoryStream o FileStream, o debería convertirse en una matriz de bytes []?
keith
Solución
A byte[]
o MemoryStream
ambos requerirán traer el archivo completo a la memoria.A MemoryStream
es en realidad un contenedor alrededor de una matriz de bytes subyacente.El mejor enfoque es tener dos FileStream
(uno para entrada y otro para salida).Lea desde el flujo de entrada buscando el patrón utilizado para indicar que el archivo debe separarse mientras se escribe en el archivo de salida actual.
Es posible que desee considerar empaquetar los archivos de entrada y salida en un BinaryReader
y BinaryWriter
respectivamente si agregan valor a su escenario.
Otros consejos
Un MemoryStream es básicamente una matriz de bytes con una interfaz de flujo, p.lectura/escritura secuencial y el concepto de posición actual.