Страницы

Поиск по вопросам

вторник, 4 июня 2019 г.

Как прочитать очень большой текстовый файл?

Имеется текстовый файл содержащий всего одну строку, но размер файла 1 Гб. Каким образом прочитать файл целиком? File.ReadAllLines, File.ReadLines, File.ReadAllText завершаются с ошибкой о недостаточности памяти. На выходе нужно получить строку (объект типа string) с содержимым из файла. Файл одно строчный, но строка очень длинная.


Ответ

Нашел подробное описание причин этой ошибки вот здесь: ссылка. Всем спасибо за помощь, в данный момент использую такой код:
char[] buffer = new char[104857600]; string text = ""; FileStream fstream = new FileStream("document.txt", FileMode.Open, FileAccess.Read); using (var sr = new StreamReader(fstream)) { int bytesRead = 0; while ((bytesRead = sr.Read(buffer, 0, buffer.Length)) > 0) { text = new string(buffer); // обработка текста } }

Комментариев нет:

Отправить комментарий