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

标签 c# .net bytearray binary-data

我有一个网络服务器,可以将大型二进制文件(几兆字节)读入字节数组。服务器可能同时读取多个文件(不同的页面请求),所以我正在寻找最优化的方法来执行此操作,而不会过多地占用 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);

但是,如果您担心内存消耗,您不应该一次将整个文件全部读入内存。你应该分 block 做。

关于c# - 在 C# 中将大文件读入字节数组的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2030847/

相关文章:

c# - MVC 如何在页面之间导航时保​​持搜索值?

email - 将iCalendar事件附加到Grails中的邮件

c# - Resize 和 SizeChanged 事件之间的区别

c# - 我可以在 C# 中获取变量或对象的物理地址吗?

c# - 如何确定它是否是参照完整性违规异常

c# - 如何使面板控件显示在所有其他控件下方?

.net - WPF MVVM 取消窗口关闭

java - 如何对实际上是 int[] 的无符号字节数组进行 base64 编码

python - python中的十六进制字符串到字节数组

c# - 使用 Thinktecture.IdentityModel 声明授权