2012-01-26 5 views
0

Я использую следующую программу для чтения в дампе базы данных поисковой системы в поисковых запросах (> 100 МБ) и удалении ненужных данных таблицы, так что мне осталось только ключевое слово, поэтому что я могу использовать данные для трендов для одного из моих классов.Исходный текст ввода-вывода

Вот что я до сих пор:

import java.io.*; 
public class FileUtil { 

    public static void main(String args[]) { 

     try { 

      FileInputStream fStream = new FileInputStream("\\searches.txt"); 
      BufferedReader in = new BufferedReader(new InputStreamReader(fStream)); 
      //PrintStream out = new PrintStream(new FileOutputStream("searchesEdited.txt")); 

      while (in.ready()) { 
       System.out.println(in.readLine()); 
       String keyword = "foo"; // selected keyword to delete in txt file 
       //search for string 
       //delete the string 
       //write newly edited file to searchesEdited.txt 

      } 
      in.close(); 

     } catch (IOException e) { 
      System.out.println("File input error"); 
     } 

    } 
} 

Это работает, как ожидалось, и выводит все данные на консоль, так что я нахожусь в правильном направлении. Теперь мне просто нужно заменить/удалить прошедшее ключевое слово. Я просмотрел метод replaceAll(), но, похоже, не смог его правильно реализовать. Любая помощь будет принята с благодарностью.

+1

replaceAll метод использования регулярных выражений (не строковое значение). Проверьте спецификации [link] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replaceAll (java.lang.String, java.lang.String)) –

ответ

0

Вы можете просто использовать String.replace() с пустой строкой для замены, например.

"search for a keyword and delete this keyword".replace("keyword", "") 

возвращает

"search for a and delete this" 

Смотрите также here для простого учебника о том, как читать и писать текстовые файлы.

1

Try,

String line=in.readLine(); 
String keyword = "foo"; 
String newLine=line.replaceAll(keyword,""); 

Или

String keyword ="\\bfoo\\b"; //word boundary match 
String newLine=line.replaceAll(keyword,""); 
+0

это похоже на работу, но после того, как я скомпилировал и запустил его, текст, который я ввел, не сохраняет и/или не удаляет ключевые слова. все, что я сделал, было в 3-х строках выше. идеи? – user1170757

+0

Вам нужно создать файл и записать в него результат (newLine). – adatapost

Смежные вопросы