一尘不染

在C#中将大文件读入字节数组的最佳方法?

c#

我有一个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;
}

阅读 235

收藏
2020-05-19

共1个答案

一尘不染

只需将整个内容替换为:

return File.ReadAllBytes(fileName);

但是,如果您担心内存消耗,你应该 不会 一下子在所有读取整个文件到内存中。您应该分块进行。

2020-05-19