performance - game - Diferencia entre una matriz de bytes y MemoryStream
pc compare (2)
Un MemoryStream es básicamente una matriz de bytes con una interfaz de secuencia, por ejemplo, lectura / escritura secuencial y el concepto de una posición actual.
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.
¿Hay alguna ventaja de mantener el archivo como una secuencia, ya sea MemoryStream o FileStream, o debería convertirse en una matriz de bytes []?
Keith
Un byte[]
o MemoryStream
requerirán traer el archivo completo a la memoria. Un MemoryStream
es realmente un envoltorio alrededor de una matriz de bytes subyacente. El mejor enfoque es tener dos FileStream
(uno para entrada y otro para 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.