なぜこれほど多くの例がバイト配列をチャック内のストリームに読み取り、一度にすべてではないのか疑問に思っています...これは簡単な質問ですが、興味があります。
ハードウェアとバッファの充填はサイズに大きく依存する可能性があることを少し理解しています。バッファが必要な場所にフラッシュされるまで、バッファに再度書き込みたくないでしょう...ただし、.Netプラットフォーム(およびその他現代語)両方の例があります。では、いつ、どちらを使用するのか、それとも2番目は絶対にノーノーですか?
これが私が意味するもの(コード)です:
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ループの大騒ぎをすべて経験するのでしょうか(構造化することにした場合は何でも)。
私はできる限り多くを学びたいので、ここで悪魔の擁護者を演じています:)