大きなバイナリ ファイル (数メガバイト) をバイト配列に読み込む Web サーバーがあります。サーバーは複数のファイルを同時に読み取る可能性があるので (異なるページ リクエスト)、CPU に過大な負担をかけずにこれを実行する最適な方法を探しています。以下のコードは十分でしょうか?
public byte[] FileToByteArray(string fileName)
{
byte[] buff = null;
FileStream fs = new FileStream(fileName,
FileMode.Open,
FileAccess.Read);
BinaryReader br = new BinaryReader(fs);
long numBytes = new FileInfo(fileName).Length;
buff = br.ReadBytes((int) numBytes);
return buff;
}
ベストアンサー1
全体を次のように置き換えるだけです:
return File.ReadAllBytes(fileName);
ただし、メモリの消費量が気になる場合は、ファイル全体を一度にメモリに読み込むのではなく、分割して読み込む必要があります。