Подтвердить что ты не робот

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

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

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

Кит

4b9b3361

Ответ 1

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

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

Ответ 2

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