2017-03-13 5 views
-4

ここでは、テキストファイルのデータを削除することができないのですは、私は私のファイルのデータ

A -1 D -1 G -1 I -1 K -1 -2 
A -1 D -1 G -1 J -1 K -1 -2 
B -1 D -1 G -1 I -1 L -1 -2 
C -1 E B -1 G -1 I -1 L -1 -2 
C -1 F -1 H -1 I B -1 L -1 -2 

コード:私はからなどの文字「A」、「B」を削除したい

File file = new File("input.txt");/*input file where above data is stored.*/ 
fw = new FileWriter(file);/* file writer is used*/ 
BufferedWriter bw = new BufferedWriter(fw); 
FileReader fr = new FileReader("input.txt"); 
BufferedReader br = new BufferedReader(fr); 

while((verify=br.readLine()) != null) 
{ 
    if(verify != null) 
    { 
      if(verify.contains("A")) 
      { 
      putData = verify.replaceAll("A", "");/*replacing character 'A' with null*/ 
      bw.write(putData); 
      } 

      if(verify.contains("B"))/* for character 'B'*/ 
      { 
     putData = verify.replaceAll("B", ""); 
     bw.write(putData); 
      } 
    } 
} 

残りのコンテンツを邪魔することなく

私は上記のコードでファイルを更新しようとしていますが、更新できません。この問題を解決するのを手伝ってください。

+0

.replaceAll( "[A-Z]"、 ""); – mike

+0

あなたは同じファイル上で同時読み込みトランザクションを行うことはできませんが(uはできますが好まれません)...なぜ新しいファイルを作成してそれに書き込むのですか? – minigeek

+0

同じファイル 'input.txt'を読み書きしようとしているようです。残念ながら、それは動作するはずがありません。新しいファイルを最初に書き出し、その後、古いファイルを新しいファイルと置き換えます。 –

答えて

0

ファイルを読み込んでファイルの内容を一度に変更しないでください。

  • まず、ファイルを読んで、あなたは 一時リストに保存しておきたい各ラインを保存します。次に、ファイルの内容を消去します。

  • 一時リストをループし、各行を ファイルに書き戻します。

  • 最後に、バッファをフラッシュしてファイルを閉じます。

    filter/editリストに保存する前に、またはファイルに書き戻す前に、任意の行にすることができます。

1

あなたはこのように実行します。

{ file_put_contents 
    ($filename, str_replace 
     ($line . "<whatever character u want to delete>", "",file_get_contents($filename))); 
} 
+1

その言語は何ですか? (質問にはJavaのタグが付きます) –

関連する問題