Ответ 1
Индекс - это начальный индекс буфера, а не индекс указателя файла, обычно он равен нулю. На каждом вызове Read вы будете читать символы, равные параметру count метода Read
. Вы не будете читать весь файл сразу, скорее прочитайте в кусках и используйте этот кусок.
Индекс буфера, с которого нужно начать писать, ссылка.
char[] c = null;
while (sr.Peek() >= 0)
{
c = new char[1024];
sr.Read(c, 0, c.Length);
//The output will look odd, because
//only five characters are read at a time.
Console.WriteLine(c);
}
В приведенном выше примере будут готовы 1024 байта и будут записываться в консоль. Вы можете использовать эти байты, например, отправив эти байты в другое приложение с помощью соединения TCP
.
При использовании метода Read эффективнее использовать буфер, который имеет тот же размер, что и внутренний буфер потока, где внутренний буфер установлен на ваш желаемый размер блока и всегда читается меньше размера блока. Если размер внутреннего буфера был равен неопределенный, когда поток был построен, его размер по умолчанию равен 4 килобайт (4096 байт), MSDN.