获取ID号,如果找到,请删除它

时间:2013-01-03 13:20:21

标签: java swing

  

可能重复:
  Java - Find a line in a file and remove

我有一个代码,获取ID号并搜索其记录,如果存在,则显示它。

我想要找到,删除它记录。 删除行(用户记录)的一种解决方案是创建另一个文件并复制所有没有找到记录的行。 谁能告诉我另一种解决方案? (简单解决方案)

我的BookRecords.txt文件是这样的:

Name        Date        Number

one   2002   22
two   2003   33
three   2004   44
four   2005   55

我的代码找到:

String bookid=jTextField2.getText();
File f=new File("C:\\BookRecords.txt");
try{
    FileReader Bfr=new FileReader(f);
    BufferedReader Bbr=new BufferedReader(Bfr);
    String bs;
    while( (bs=Bbr.readLine()) != null ){
    String[] Ust=bs.split("   ");
    String Bname=Ust[0];
    String Bdate=Ust[1];
    String id = Ust[2];
    if (id.equals(bookid.trim()) 
    jLabel1.setText("Book Found,    "+ Bname + "    " + Bdate);
    break;
        }
      }
    }
catch (IOException ex) {
    ex.printStackTrace();
} 

请帮助删除一行(记录)

感谢。

2 个答案:

答案 0 :(得分:1)

处理单个文本文件是 - 嗯 - 有点奇怪。但我建议你创建一个新的文本文件(输出):

PrintWriter out = new PrintWriter(new FileWriter("output.txt"));

只写匹配图书ID的行。

while (...) {
    ...
    if (!id.equals(bookid.trim())) {
        out.println(bs);
    }
}
out.close();

稍后您可以根据需要重命名该文件。

答案 1 :(得分:0)

找到文本文件中的整行,找到后退字符

  

\ B'/ P>