Я совсем новичок в C#, поэтому, пожалуйста, потерпите меня. Я читаю (используя FileStream) данные (фиксированного размера) в небольшой массив, обрабатываю данные, затем снова читаю и так далее до конца файла.
Я думал об использовании чего-то вроде этого:
byte[] data = new byte[30];
int numBytesToRead = (int)fStream.Length;
int offset = 0;
//reading
while (numBytesToRead > 0)
{
fStream.Read(data, offset, 30);
offset += 30;
numBytesToRead -= 30;
//do something with the data
}
Но я проверил документацию и их примеры, и они заявили, что возвращаемое значение вышеуказанного метода чтения:
"Тип: System.Int32 Общее количество байтов, прочитанных в буфер. Это может быть меньше, чем количество запрошенных байтов, если это количество байтов в настоящее время недоступно, или ноль, если конец поток достигнут».
Что значит, что они сейчас недоступны, это действительно может происходить при чтении небольших объемов данных или это только для больших объемов? Если только для больших, то насколько больших примерно, потому что я буду читать и большими кусками в некоторых других местах. Если это может произойти в любое время, как мне изменить свой код, чтобы он по-прежнему выполнялся эффективно?
Спасибо за ваше время и ответы.