Java 我无法删除文本文件数据

Java 我无法删除文本文件数据,java,Java,这是我的文件数据 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 代码: File file = new File("input.txt");/*input file where above data is stored.*/ fw = new FileWr

这是我的文件数据

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
代码:

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);
          }
   }
}
我想在不干扰其他内容的情况下,从文件中删除字符“A”、“B”等


我正试图用上述代码更新文件,但无法更新。请帮助我解决此问题。

您不应该一次读取文件并更改文件内容

  • 首先,读取文件并将要保留的每一行保存在 临时名单。然后清除文件的内容

  • 然后循环浏览临时列表,并将每一行写回 文件

  • 最后,刷新()缓冲区并关闭文件

    在保存到列表或写回文件之前,您可以
    过滤/编辑所需的任何行

    • 您只需这样做:

      {  file_put_contents
           ($filename, str_replace
              ($line . "<whatever character u want to delete>", "",file_get_contents($filename)));
       }
      
      {file\u put\u内容
      ($filename,str_replace
      ($line.“,”,file_get_contents($filename));
      }
      
      .replaceAll(“[A-Z]”,“”);您不能在同一文件上同时执行读写事务(您可以但不是首选)…为什么不创建一个新文件并写入其中?似乎您正在尝试读写同一个文件,
      input.txt
      。不幸的是,这是行不通的。先写一个新文件,然后用新文件替换旧文件。那是什么语言?(问题被标记为java。)