gpt4 book ai didi

c# - 如何解决 C# 中的 OutOfMemory 异常?

转载 作者:太空狗 更新时间:2023-10-29 23:20:15 25 4
gpt4 key购买 nike

我有一些巨大的 xml 文件,超过 1 GB。我需要对它们进行一些过滤操作。我想到的最简单的想法是将它们保存为 txt 和 ReadAllText,然后开始做一些操作,比如

  var a = File.ReadAllText("file path");
a = a.Replace("<", "\r\n<");

然而,当我尝试这样做时,程序崩溃了,内存不足。我在运行它时查看了我的任务管理器,RAM 使用率攀升至 50%,当它达到它时程序就死了。

有没有人知道我如何操作这个文件来避免 OutOfMemory 异常或允许程序占用更多内存。

最佳答案

如果您可以逐行执行,而不是使用 File.ReadAllText 说“将所有内容读入内存”,您可以使用 File 说“一次让我一行”。 ReadLines.

这将返回使用延迟执行的 IEnumerable。你可以这样做:

using(StreamWriter sw = new StreamWriter(newFilePath))
foreach(var line in File.ReadLines(path))
{
sw.WriteLine(line.Replace("<", "\r\n<"));
sw.Flush();
}

如果想了解延迟执行的更多信息,可以查看this github页面。

关于c# - 如何解决 C# 中的 OutOfMemory 异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47050159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com