Зачем писать в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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