私はC#を初めて使用するので、ご容赦ください。(FileStreamを使用して)データ(固定サイズ)を小さな配列に読み取り、データを処理してから、ファイルの最後まで再度読み取ります。
私はこのようなものを使うことを考えました:
byte[] data = new byte[30];
int numBytesToRead = (int)fStream.Length;
int offset = 0;
//reading
while (numBytesToRead > 0)
{
fStream.Read(data, offset, 30);
offset += 30;
numBytesToRead -= 30;
//do something with the data
}
しかし、私はドキュメントとその例を確認し、上記のreadメソッドの戻り値は次のとおりであると述べました。
「タイプ:System.Int32バッファに読み込まれた合計バイト数。これは、そのバイト数が現在使用できない場合は要求されたバイト数より少ない場合があり、ストリームの終わりに達した場合はゼロになる可能性があります。」
それらが現在利用できないということはどういう意味ですか、これは少量のデータを読み取るときに実際に発生する可能性がありますか、それとも大量のデータに対してのみですか?他の場所でも大きなチャンクで読んでいるので、大きい場合は、おおよその大きさです。これがいつでも発生する可能性がある場合、コードが効率的に実行されるようにコードを変更するにはどうすればよいですか?
お手数をおかけしますが、よろしくお願いいたします。