Мне нужен мой код, чтобы сделать что-то вроде этого: где-то в коде num
получает значение, и после этого я хочу читать из файла ТОЧНО, поскольку байты - это номер num
.Как читать UInt32 числа байтов с бинарным считывателем?
Например: Если num is 39382, мне нужно прочитать 39382 байта и поместить их в буфер [];
Перед тем, как что-то вроде этого:
ushort num = 0;
//.... num get some value;
byte[] buffer = bRead.ReadBytes(num);
Теперь я должен изменить его так, что num
является UInt32
, но ReadBytes
не работает (потому что он хочет int32). Возможно, «num» превысит int32. Я зафиксировал это следующим образом:
byte[] buffer = new byte[num];
for (int j = 0; j < num; j++)
{
buffer[j] = bRead.ReadByte();
}
и он работает, но мне интересно, что это лучший способ сделать это? Или есть еще?
Предупреждение: выделение массива> 2 ГБ будет работать только на .NET 4.5 64bit с установкой 'gcAllowVeryLargeObjects' значения true. Возможно, вам захочется работать с «FileStream» или эквивалентом. –
И это одна из причин, по которой я хочу изменить ее с лучшей. – Georgi