2012-01-26 20 views
0

次のプログラムを使用して、検索クエリ(> 100 MB)の巨大な検索エンジンデータベースのダンプを読み込み、不要なテーブルデータを削除して、私は自分のクラスの1つの傾向に関するデータを採掘することができます。ここで基本的な入出力テキストの置き換え

は、私がこれまで持っているものです。

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メソッドは、正規表現(ない文字列値)を使用します。仕様を確認する[リンク](http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/String.html#replaceAll(java.lang.String)) –

答えて

0

String.replace()を使用して、置換用の空のStringを使用できます。

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

戻り

"search for a and delete this" 

テキストファイルを読み書きする方法についての簡単なチュートリアルもhere参照してください。

1

てみてください、

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

関連する問題