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
文件大小约为600 2GB,但可能高达2GB。
代码的较短版本也失败了:
var data = File.ReadAllBytes(filePath);发布于 2015-12-15 14:15:03
您的文件大小是否可能超过2 GB,并且正在使用32位系统?看起来您已经超出了限制,没有一个对象可以大于2GB(至少在32位系统的情况下)。考虑将数据流改为流。但是使用.NET Framework4.5,您可以使用<gcAllowVeryLargeObjects>元素,它支持您使用大于2GB的对象。
这是您必须使用的配置;
<configuration>
<runtime>
<gcAllowVeryLargeObjects enabled="true" />
</runtime>
</configuration>https://stackoverflow.com/questions/34291309
复制相似问题