次のコードを想定します。
Stream file = files[0].InputStream;
var FileLen = files[0].ContentLength;
var b = new BinaryReader(file);
var bytes = b.ReadBytes(FileLen);
10 レコード (257 バイト) の CSV ファイルをアップロードすると、BinaryReader はバイト配列を「0」で埋めます。
また、BinaryReader の ReadByte メソッドをステップ実行するループも作成しました。ループの最初の繰り返しで、次の例外を受け取りました。
ストリームの終わりを超えて読み取ることができません
CSV ファイルを 200 レコードに増やすと、すべてが正常に機能しました。
問題は、なぜこれが小さなファイルで発生するのか、そして小さなファイルのバイナリ読み取りを可能にする回避策があるかということです。