字节数组内存不足异常
本文关键字:异常 内存不足 数组 字节数 字节 | 更新日期: 2023-09-27 18:26:55
using (FileStream stream = File.OpenRead(filePath))
{
var data = new byte[stream.Length];
stream.Read(data, 0, data.Length);
}
我在那一行抛出了一个 OutOfMemoryException(不是在流读取期间,而是在字节初始化期间:
data = new byte[stream.Length];
[编辑15-12-2015]
文件大小约为600MB,但最高可达2GB。
较短版本的代码也会失败:
var data = File.ReadAllBytes(filePath);
您的文件大小是否可能超过 2 GB 并且您使用的是 32 位系统?看起来您超出了限制,没有单个对象可以大于 2 GB(至少在 32 位系统的情况下(。请考虑改为流式传输数据。但是在 .NET Framework 4.5 中,您可以使用 <gcAllowVeryLargeObjects>
Element,它支持您使用总大小大于 2 GB 的对象。
这是您必须使用的配置;
<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>