C # - чтение большого (150 МБ) текстового файла в поле Rich Text Box - PullRequest
5 голосов
/ 29 февраля 2012

Я пытаюсь прочитать текстовый файл размером 150 МБ в поле Rich Text.

В настоящее время я использую StreamReader для итерации каждой строки в файле, добавляя каждую строку в экземпляр StringBuilder.

Это работает для небольших файлов, но я получаю исключение System.OutOfMemory при попытке чтения больших файлов.

Я не вижу проблем с чтением файла размером 150 Мб - достаточно физической памяти, и это хорошо в адресном пространстве 32-битного приложения Windows.

Если кто-нибудь здесь знает, как это сделать, будет очень признателен.

Я приложу свой код в конце.

Спасибо.

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

return sb;

Ответы [ 2 ]

5 голосов
/ 29 февраля 2012

Использование RichTextBox.LoadFile

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

Я не уверен, почему вы хотите загрузить весь текст в StringBuilder. В качестве альтернативы вы можете передать FileStream в LoadFile, что сделает для вас большой файл.

0 голосов
/ 01 марта 2012

Полагаю, вам следует как-то управлять входным файлом - скажем, разбить его на несколько файлов и перемещаться между частями программным путем или около того ...

Файл 150 МБ звучит как ненормальная вещь. Возможно, вам следует обратить внимание на потоковый тип обработки данных, а не на файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...