【发布时间】:2012-11-16 10:23:23
【问题描述】:
我想知道为什么这么多示例将字节数组读入流中而不是一次全部...我知道这是一个软问题,但我很感兴趣。
我了解一些关于硬件和填充缓冲区的信息可能非常依赖于大小,并且您不想再次写入缓冲区,直到它被刷新到它需要去的任何地方等等......但是使用 .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 循环(无论你决定如何构建它)?
我在这里扮演魔鬼代言人,因为我想尽可能多地学习:)
【问题讨论】:
标签: c# stream meta point-of-interest