我有一个非常大的BMP文件,我必须一次全部读取,因为我需要在将它写入临时文件时反转字节。这个BMP是1.28GB,我得到了“内存不足”的错误。我无法完全读取它(使用ReadAllBytes)或将缓冲区放入二进制数组中,因为我无法初始化该大小的数组。我也无法使用缓冲区将它读入List(我可以使用Reverse()),因为它的中途耗尽内存。难以将大文件读入字节数组
所以基本上问题是,我如何读取一个非常大的文件向后(即,从LastByte开始到FirstByte结束),然后将其写入磁盘?
奖励:将反转文件写入磁盘时,不要写入最后54个字节。
编辑问题,包括你使用,因为会有所帮助,从4版开始的.NET framework版本,可以通过托管代码访问内存映射文件。 – 2013-04-08 08:51:12