Я читаю двоичный файл в программу анализа. Мне нужно будет перебирать файл и искать определенные маркеры, чтобы я мог разбить файл и передать эти части в конструкторы соответствующих объектов.
Есть ли преимущество в сохранении файла в виде потока, MemoryStream или FileStream, или он должен быть преобразован в массив byte []?
Кит
A byte[]
или MemoryStream
оба потребуют перенести весь файл в память. A MemoryStream
действительно является оберткой вокруг базового байтового массива. Лучший подход состоит в том, чтобы иметь два FileStream
(один для ввода и один для вывода). Чтение из входного потока в поисках шаблона, используемого для указания того, что файл должен быть отделен при записи в текущий выходной файл.
Возможно, вы захотите обернуть входные и выходные файлы в a BinaryReader
и BinaryWriter
соответственно, если они повышают ценность вашего сценария.
MemoryStream - это в основном байтовый массив с потоковым интерфейсом, например, последовательное чтение / запись и концепция текущей позиции.