【问题标题】:StreamReader Gets Stuck on Large FilesStreamReader 卡在大文件上
【发布时间】:2014-09-08 21:41:04
【问题描述】:

我正在尝试使用流式阅读器读取 50GB 的文本文件。它甚至没有读取文件,因为我的程序冻结在第二行(代码,而不是文件)。

string filename = @"C:\wikipedia\dump.xml";
StreamReader wikipediaReader = new StreamReader(filename);
string line = "";
while((line = wikipediaReader.ReadLine()) != null)
{
    Console.WriteLine(line);
    Console.ReadKey();
}

【问题讨论】:

  • 我会中断并查看调用堆栈,看看它卡在StreamReader 构造函数中的位置。这可能会给我们一个线索。
  • 这是您的反恶意软件参与其中。不,您无法从调用堆栈中看到它,它在树林中试图弄清楚如何处理 50 吉字节的潜在恶意软件。
  • @user - XML 文件非常适合您的机器,任何反恶意软件都会将它们放在列表的顶部。他们的 DTD 是一种强大的 DoS 攻击。
  • 好吧,给你。当解毒剂与问题无法区分时,谁需要病毒。至少提一下名字,这样每个人都知道要避免什么。
  • 我应用了奥卡姆剃刀。

标签: c# streamreader large-files


【解决方案1】:

可能是防病毒软件试图扫描文件。

【讨论】:

  • 社区 Wiki,所以我不相信 @HansPassant 的工作。我只是想把这个作为一个真正的答案在这里发布。
【解决方案2】:

您也可以尝试使用MemoryMappedFile 读取文件

【讨论】:

    【解决方案3】:

    我们必须在读取文件时使用拆分器并设置开始位置和结束位置

    我建议你检查This Link

    如果您仍然有问题,请告诉我,我会帮助您解决工作代码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多