Разница между байтовым массивом и MemoryStream

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

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

Кит

Ответов (2)

Решение

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

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

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