2012-02-29 135 views
5

我試圖在一個150mb的文本文件中讀入一個富文本框。C# - 將一個大文本文件讀入一個富文本框

目前,我正在使用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

+1,很好的問題。 – 2012-02-29 11:42:51

+1

你可以發佈堆棧跟蹤嗎?所以我們可以確切地看到異常發生的位置。此外,這可能是相關的:http://stackoverflow.com/questions/363680/stringbuilder-for-string-concatenation-throws-outofmemoryexception(關於字符串建設者) – Christoffer 2012-02-29 11:53:26

+1

請澄清,這段代碼(閱讀部分)拋出異常或者當您加載RTB時會發生這種情況嗎? – 2012-02-29 11:54:23

回答

0

我想你應該以某種方式管理輸入文件 - 讓說,它分割成幾個較小的文件和各部分之間的導航編程左右..

150MB文件聽起來像異常的事情。也許你應該看看流類型的數據處理而不是文件處理。

相關問題