offset
здесь - это смещение в массиве , с которого начинается запись.В вашем случае просто установите:
stream.Position = 3147483648;
и затем используйте Read()
.offset
чаще всего используется, когда вы знаете, что вам нужно прочитать [n] байтов:
int toRead = 20, bytesRead;
while(toRead > 0 && (bytesRead = stream.Read(buffer, offset, toRead)) > 0)
{
toRead -= bytesRead;
offset += bytesRead;
}
if(toRead > 0) throw new EndOfStreamException();
, это будет считывать ровно 20 байтов в buffer
(или выдавать исключение).Обратите внимание, что Read()
не гарантирует считывание всех необходимых данных за один раз, поэтому обычно требуется цикл, увеличивающий смещение.