2015-01-24 5 views
0

Мне нужно найти подстроку в очень большом текстовом файле (5-10 ГБ). Что вы посоветуете мне для простой и быстрой обработки файлов такого размера?Найти подстроку в очень большом файле (javaSE)

UPD: Этот алгоритм поиска для слова в файле, но мне кажется, что врят будет легко обрабатывать большие файлы:

File textFile = new File("text.txt"); 

     BufferedReader fileOut = new BufferedReader(new FileReader(textFile)); 
     String s; 

     int a = 1; 
     while((s = fileOut.readLine()) != null) { 
      if(s.contains("findword")) 
      System.out.println(a + ": " + s); 
      a++; 
     } 

     fileOut.close(); 
+2

Будете ли вы находить только одну подстроку, а потом? Или вы будете многократно извлекать строки из текста? –

+1

@HovercraftFullOfEels Мне нужно найти слово в файле и вывести строку, содержащую слово. Например, myWordWhatIneed file.txt, и программа проходит через файлы и выходные строки, содержащие слово. После этого предложения повторного ввода файла слова и где искать – user3528927

+0

Я бы предложил использовать Lucene, поэтому индексируйте файл и делайте то, что захотите. Это будет намного быстрее, чем другие тигры, и вы сможете делать более продвинутые вещи, чем просто. – Babl

ответ

0

Подсказка: Посмотрите на алгоритм Кнута-Морриса-Пратта ,