Pergunta

Estou lendo um arquivo binário em um programa de análise.Precisarei percorrer o arquivo e procurar determinados marcadores para poder dividir o arquivo e passar essas partes para os construtores de seus respectivos objetos.

Existe uma vantagem em manter o arquivo como um fluxo, seja MemoryStream ou FileStream, ou ele deve ser convertido em uma matriz de bytes[]?

Keith

Foi útil?

Solução

A byte[] ou MemoryStream ambos exigirão trazer o arquivo inteiro para a memória.A MemoryStream é realmente um wrapper em torno de uma matriz de bytes subjacente.A melhor abordagem é ter dois FileStream (um para entrada e outro para saída).Leia o fluxo de entrada procurando o padrão usado para indicar que o arquivo deve ser separado durante a gravação no arquivo de saída atual.

Você pode considerar agrupar os arquivos de entrada e saída em um BinaryReader e BinaryWriter respectivamente, se agregarem valor ao seu cenário.

Outras dicas

Um MemoryStream é basicamente uma matriz de bytes com uma interface de fluxo, por ex.leitura/escrita sequencial e o conceito de posição atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top