Выделение и извлечение данных из больших текстовых файлов с использованием Java - PullRequest
0 голосов
/ 05 октября 2010

У меня есть файл в формате ASCII с 250k + строками текста, над которыми мне нужно выполнить 2 шага.

1) просканировать весь файл и выделить разделы, сопоставляя заданный шаблон регулярного выражения.

2) читать каждый раздел данных и разбирать из него подразделы.

Одним из вариантов является использование строчного сканирования файла с использованием BufferedReader, проверка каждой строки на совпадение и сохранение номера строки на совпадения.

Существуют ли более эффективные варианты использования пространства имен nio?

1 Ответ

0 голосов
/ 05 октября 2010

Возможно прокачать файл через цепочку потоков; один поток, который пропускает только разделы, соответствующие вашему регулярному выражению, за которым следует поток, выполняющий этап синтаксического анализа.

, например

OutputStream os = RegexFilterOutputStream(
                  new ParsingStuffOutputStream()
                  );
while(input not empty) {
    // write stuff from input to os
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...