2008-08-19 2 views
16

Я читаю двоичный файл в программе синтаксического анализа. Мне нужно будет перебирать файл и искать определенные маркеры, чтобы я мог разбить файл и передать эти части в их конструкторы соответствующего объекта.Разница между массивом байтов и MemoryStream

Есть ли преимущество для хранения файла в виде потока, как MemoryStream или FileStream, так и его преобразования в массив byte []?

Кит

ответ

24

A byte[] или MemoryStream оба потребуют переноса всего файла в память. A MemoryStream действительно является оберткой вокруг базового массива байтов. Наилучший подход состоит в том, чтобы иметь два FileStream (один для ввода и один для вывода). Чтение из входного потока ищет шаблон, используемый для указания того, что файл должен быть разделен при записи в текущий выходной файл.

Возможно, вы захотите обернуть файлы ввода и вывода в BinaryReader и BinaryWriter соответственно, если они добавят ценность вашему сценарию.

7

MemoryStream в основном байтовый массив с интерфейсом потока, например, последовательное чтение/запись и концепция текущей позиции.

Смежные вопросы