代码之家  ›  专栏  ›  技术社区  ›  David Thielen

StringBuilder。ToString()读取145M文件时内存不足

  •  -2
  • David Thielen  · 技术社区  · 6 年前

    我打电话给StreamReader。ReadToEnd(),该文件大小为145M。它在StringBuilder中引发异常。ToString()。我正在32位模式下运行。

    这应该不是问题。它很大,但没那么大。知道为什么会出现异常吗?

    有什么建议的解决方法吗?

    1 回复  |  直到 6 年前
        1
  •  0
  •   Postlagerkarte    6 年前

    内存映射文件 使程序员能够处理非常大的文件,因为内存可以并发管理,并且允许完全随机访问文件,而无需查找。

    var mmf = MemoryMappedFile.CreateFromFile(@"c:\ExtremelyLargeImage.data", FileMode.Open,"ImgA")
    

    https://msdn.microsoft.com/en-us/library/system.io.memorymappedfiles.memorymappedfile.aspx