#c# #winforms #text #large-files
#c# #winforms #текст #большие файлы
Вопрос:
Привет всем! Мне нужно прочитать большие текстовые файлы размером до 100 мб. Мне нужно прочитать каждую строку, выполнить поиск строки и записать результаты в журнал. Каков был бы наилучший способ сделать это? Должен ли я читать каждую строку по отдельности и выполнять поиск в ней, а затем переходить к следующей?
Ответ №1:
Выделение строки размером до 200 мб в наши дни не так уж и много. Просто прочитайте все это сразу и обработайте.
Комментарии:
1. Было бы это очень эффективно? Я должен был отметить, что это должно быть максимально эффективно, возможно ли запустить 2 потока, каждый из которых одновременно считывает половину файла?
2. Одновременный запуск в двух потоках помогает решению задач, связанных с процессором. Этот связан с вводом-выводом.
3. Хорошо, так что было бы лучшей идеей делать это при построчном поиске файла, чем при его фактическом чтении?
4. Если это действительно ваше единственное требование, поиск строки в файле во время подсчета номеров строк, просто прочитайте все это в строке и вызовите
.IndexOf
. Трудно добиться лучших результатов, чем этот.
Ответ №2:
Одним из вариантов является использование файлов, отображенных в память .