1. ホーム
  2. c#

[解決済み] C#で大きなファイルをバイト配列に読み込む最良の方法?

2022-03-22 03:52:41

質問

私は、大きなバイナリファイル(数メガバイト)をバイト配列に読み込むウェブサーバを持っています。サーバーは同時に複数のファイル(異なるページ要求)を読み取ることができるので、私は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;
}

解決方法は?

で全体を置き換えるだけです。

return File.ReadAllBytes(fileName);

ただし、メモリ消費量が気になる場合は ではなく は、ファイル全体を一度にメモリに読み込むことができます。チャンク単位で行うべきでしょう。