2008-08-19 17 views
16

Estoy leyendo un archivo binario en un programa de análisis. Tendré que recorrer el archivo y buscar ciertos marcadores para poder dividir el archivo y pasar esas partes a los respectivos constructores de objetos.Diferencia entre una matriz de bytes y MemoryStream

¿Hay una ventaja para mantener el archivo como una secuencia, ya sea MemoryStream o FileStream, o se debe convertir en una matriz de bytes []?

Keith

Respuesta

24

A byte[] o MemoryStream requerirán traer el archivo completo a la memoria. Un MemoryStream es realmente una envoltura alrededor de una matriz de bytes subyacente. El mejor enfoque es tener dos FileStream (uno para la entrada y otro para la salida). Lea de la secuencia de entrada buscando el patrón utilizado para indicar que el archivo debe separarse mientras escribe en el archivo de salida actual.

Es posible que desee considerar envolver los archivos de entrada y salida en un BinaryReader y BinaryWriter respectivamente si agregan valor a su escenario.

7

A MemoryStream es básicamente una matriz de bytes con una interfaz de corriente, por ejemplo, lectura/escritura secuencial y el concepto de una posición actual.

Cuestiones relacionadas