2008-08-19 8 views
16

Je lis un fichier binaire dans un programme d'analyse. Je devrai parcourir le fichier et rechercher certains marqueurs pour pouvoir scinder le fichier et passer ces parties dans les constructeurs de leurs objets respectifs. Y at-il un avantage à conserver le fichier en tant que flux, soit MemoryStream, soit FileStream, ou devrait-il être converti en un tableau byte []?Différence entre un tableau d'octets et MemoryStream

Keith

Répondre

24

Un byte[] ou MemoryStream nécessiteront tous les deux de mettre le fichier entier en mémoire. Un MemoryStream est vraiment un wrapper autour d'un tableau d'octets sous-jacent. La meilleure approche consiste à avoir deux FileStream (un pour l'entrée et un pour la sortie). Lecture à partir du flux d'entrée à la recherche du modèle utilisé pour indiquer que le fichier doit être séparé lors de l'écriture dans le fichier de sortie en cours.

Vous pouvez envisager d'envelopper les fichiers d'entrée et de sortie dans un BinaryReader et BinaryWriter respectivement s'ils ajoutent de la valeur à votre scénario.

7

A MemoryStream est essentiellement un tableau d'octets avec une interface de flux, par exemple, lecture/écriture séquentielle et le concept d'une position actuelle.

Questions connexes