2008-08-19 14 views
16

Ich lese eine Binärdatei in ein Parsing-Programm. Ich muss durch die Datei iterieren und nach bestimmten Markern suchen, damit ich die Datei aufteilen und diese Teile in die Konstruktoren ihres jeweiligen Objekts übergeben kann.Unterschied zwischen einem Byte-Array und MemoryStream

Gibt es einen Vorteil, die Datei als Stream, entweder MemoryStream oder FileStream, zu halten, oder sollte es in ein Array byte [] konvertiert werden?

Keith

Antwort

24

A byte[] oder MemoryStream müssen beide die gesamte Datei in den Speicher bringen. Ein MemoryStream ist wirklich ein Wrapper um ein zugrunde liegendes Byte-Array. Der beste Ansatz besteht darin, zwei zu haben (eine für die Eingabe und eine für die Ausgabe). Lesen Sie aus dem Eingabestream nach dem Muster, das verwendet werden soll, um anzugeben, dass die Datei beim Schreiben in die aktuelle Ausgabedatei getrennt werden soll.

Sie sollten in Betracht ziehen, die Eingabe- und Ausgabedateien in eine BinaryReader bzw. BinaryWriter zu verpacken, wenn sie Ihrem Szenario einen Mehrwert verleihen.

7

A Memory ist im Prinzip ein Byte-Array mit einer Strom-Schnittstelle, z.B. sequentielles Lesen/Schreiben und das Konzept einer aktuellen Position.

Verwandte Themen