Чтение из огромного MemoryStream в C #

Я использую BinaryReader ( MemoryStream (MyByteArray) ), чтобы читать записи переменного размера и обрабатывать их все в памяти. Это хорошо работает до тех пор, пока размер моего байта, который находится в массиве, составляет менее 1,7 ГБ. После этого (который является максимальным размером целого числа в моей 64-битной системе) вы не можете создать больший байтовый массив, хотя у меня достаточно реальной памяти. Поэтому мое решение состояло в том, чтобы прочитать байтовый поток и разбить его на несколько байтовых массивов.

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

Это должно быть распространенной проблемой для людей, обрабатывающих очень большие наборы данных, и все еще нуждающихся в скорости.

Как мне решить эту проблему?

6
задан Peter Mortensen 10 May 2011 в 14:19
поделиться