Вопрос

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

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

Кит

Это было полезно?

Решение

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

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top