Обработка больших текстовых файлов на C#

#c# #winforms #text #large-files

#c# #winforms #текст #большие файлы

Вопрос:

Привет всем! Мне нужно прочитать большие текстовые файлы размером до 100 мб. Мне нужно прочитать каждую строку, выполнить поиск строки и записать результаты в журнал. Каков был бы наилучший способ сделать это? Должен ли я читать каждую строку по отдельности и выполнять поиск в ней, а затем переходить к следующей?

Ответ №1:

Выделение строки размером до 200 мб в наши дни не так уж и много. Просто прочитайте все это сразу и обработайте.

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

1. Было бы это очень эффективно? Я должен был отметить, что это должно быть максимально эффективно, возможно ли запустить 2 потока, каждый из которых одновременно считывает половину файла?

2. Одновременный запуск в двух потоках помогает решению задач, связанных с процессором. Этот связан с вводом-выводом.

3. Хорошо, так что было бы лучшей идеей делать это при построчном поиске файла, чем при его фактическом чтении?

4. Если это действительно ваше единственное требование, поиск строки в файле во время подсчета номеров строк, просто прочитайте все это в строке и вызовите .IndexOf . Трудно добиться лучших результатов, чем этот.

Ответ №2:

Одним из вариантов является использование файлов, отображенных в память .