C# – 将大文本文件(150MB)读入Rich Text Box

我试图读入一个150MB的文本文件到一个富文本框。

目前,我正在使用StreamReader遍历文件中的每一行,将每一行附加到一个StringBuilder实例。

这适用于较小的文件,但是当试图读取大文件时,我得到一个System.OutOfMemoryexception。

我没有看到任何读取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; 

使用RichTextBox.LoadFile

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

我不知道为什么你要将整个文本加载到一个StringBuilder 。 或者,您可以将FileStream传递给LoadFile ,它将为您呈现大文件。

我想你应该以某种方式管理输入文件 – 比如说把它分成几个较少的文件,然后以编程的方式在各部分之间进行导航。

150MB的文件听起来像一个不正常的事情。 也许你应该看看流类型的数据处理,而不是一个文件。