C# - 将大型(150MB)文本文件读入RTF文本框

时间:2012-02-29 11:38:03

标签: c# windows winforms visual-studio

我正在尝试将150mb文本文件读入富文本框。

目前,我正在使用StreamReader迭代文件中的每一行,将每一行追加到StringBuilder实例。

这适用于较小的文件,但在尝试读取大文件时遇到System.OutOfMemory异常。

我没有看到读取150mb文件的任何问题 - 有足够的物理内存,这在Windows 32位应用程序地址空间内。

如果有人知道如何做到这一点,我们将不胜感激。

我会在最后附上我的代码。

感谢。

StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader(fileLocation))
{
   string line;
   while ((line = sr.ReadLine()) != null)
   {
      sb.AppendLine(line);
   }
    }

return sb;

2 个答案:

答案 0 :(得分:5)

使用RichTextBox.LoadFile

http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.loadfile.aspx

我不确定您为什么要将整个文本加载到StringBuilder。或者,您可以将FileStream传递给LoadFile,这会为您呈现大文件。

答案 1 :(得分:0)

我猜你应该以某种方式管理输入文件 - 让我们把它分成几个较少的文件,然后以编程方式在两个部分之间导航..

150MB文件听起来像是一个异常的东西。也许您应该查看流类型的数据处理而不是文件。