Зачем писать в Stream частями?C#

Место общения программистов C#
Anonymous
Зачем писать в Stream частями?

Сообщение Anonymous »

Мне интересно, почему так много примеров считывают массивы байтов в потоки порциями, а не все сразу... Я знаю, что это мягкий вопрос, но мне интересно.

Я немного понимаю аппаратное обеспечение, и буферы заполнения могут сильно зависеть от размера, и вы не захотите снова записывать в буфер, пока он не будет сброшен туда, куда ему нужно, и т. д... но с платформой .Net (и других современных языках) я вижу примеры того и другого. Итак, когда использовать, который и когда, или второе абсолютно нет-нет?

Вот что (код) я имею в виду:

Код: Выделить всё

var buffer = new byte[4096];

while (true)
{
var read = this.InputStream.Read(buffer, 0, buffer.Length);

if (read == 0)
break;

OutputStream.Write(buffer, 0, read);
}
а не:

Код: Выделить всё

var buffer = new byte[InputStream.Length];

var read = this.InputStream.Read(buffer, 0, buffer.Length);

OutputStream.Write(buffer, 0, read);
Я считаю, что оба варианта законны? Так зачем возиться со всей суетой цикла while (как бы вы ни решили его структурировать)?

Я здесь играю роль адвоката дьявола, поскольку хочу узнать как можно больше как могу :)

Подробнее здесь: https://stackoverflow.com/questions/136 ... -in-chunks

Вернуться в «C#»