2016-05-17 21 views
-1

ファイルに書きたいです。しかし、筆記する前に、そのコンテンツが既にファイルに存在するかどうかをチェックしたいと思います。コンテンツが存在する場合は追加しないでください。そうでない場合は、追加します。 Javaでこれをどうやって行うことができますか?ファイルにコンテンツを追加し、すでに存在する場合は追加しないでください

私のコードは次のようである:

bufferedReader = new BufferedReader(new FileReader(filePath)); 

while (bufferedReader.readLine() != null) { 
    System.out.println(bufferedReader.readLine() +":" + orphan); 
    if(bufferedReader.readLine().equals(orphan)){ 
     System.out.println("Matched =============="); 
     check = true ; 
     break; 
    } 
} 

if(check != true) { 
    System.out.println("writting the value "); 
    bufferedWriter = new BufferedWriter(new FileWriter(filePath, true)); 
    bufferedWriter.write(orphan); 
    bufferedWriter.newLine(); 
    bufferedWriter.close(); 
} 
+2

書く前に、ファイルを読んでください。コンテンツがファイルに追加する内容と類似しているかどうかを確認します。そうでない場合は、ファイルに書き込みます。 –

+3

私は研究を開始し、試行錯誤に移ります。 –

+0

これらの要件を再度満たしています。どのような種類のファイルですか?どのような形式のファイルですか?あなたのコードのどの部分で問題に直面していますか? –

答えて

0

問題は、あなたのファイルの内容を読み取ろう方法で産みます。

while (bufferedReader.readLine() != null) { // read line n 
    System.out.println(bufferedReader.readLine() +":" + orphan); // read line n + 1 
    if(bufferedReader.readLine().equals(orphan)){ // read line n + 2 
     System.out.println("Matched =============="); 
     check = true ; 
     break; 
    } 
} 

bufferedReader.readLine()を呼び出すたびに、次の行が読み込まれます。 コードは次のようになります(テストされていません)。

String input = bufferedReader.readLine(); // read line n 
while (input != null) { 
    System.out.println(input +":" + orphan); 
    if(input.equals(orphan)){ 
     System.out.println("Matched =============="); 
     check = true ; 
     break; 
    } 
    input = bufferedReader.readLine(); // read line n+1 
} 
関連する問題