我正在尝试将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;
答案 0 :(得分:5)
使用RichTextBox.LoadFile
http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox.loadfile.aspx
我不确定您为什么要将整个文本加载到StringBuilder
。或者,您可以将FileStream
传递给LoadFile
,这会为您呈现大文件。
答案 1 :(得分:0)
我猜你应该以某种方式管理输入文件 - 让我们把它分成几个较少的文件,然后以编程方式在两个部分之间导航..
150MB文件听起来像是一个异常的东西。也许您应该查看流类型的数据处理而不是文件。