Страницы

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

понедельник, 3 февраля 2020 г.

Быстрая обработка больших файлов

#c_sharp


Возможно ли в C# прочитать/загрузить файл в оперативную память и потом оттуда быстро
его построчно прочитать?

Нужно читать, скажем, файлы, большие 4 GB.
    


Ответы

Ответ 1



Если вы используете Net 4.0, то попробуйте использовать класс MemoryMappedFile, предназначенный специально для чтения файлов больших размеров Либо вариант использовать класс StreamReader, построчно читаю из файла с помощью функции ReadLine Можно использовать LINQ int result = File.ReadLines(filePath).Count(); Функция File.ReadLines будет возвращать IEnumerable < string>, который будет лениво загружать в память новую строку(то есть по требованию), и у вас не будет большая загрузка оперативной памяти. В переменной result будет содержаться общее количество строк в файле. Можно Count() убрать и просто в цикле читать построчно файл foreach(var line in File.ReadLines(filePath)) { // line содержит прочитанную строку из файла(текущая строка загрузиться в память только в этот момент) }

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

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