0

可能重复:
Java - 在文件中查找一行并删除

我有一个获取 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();
} 

请帮忙删除一行(一条记录)

谢谢。

4

2 回答 2

1

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

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

只写与书的 ID不匹配的行。

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

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

于 2013-01-03T13:27:41.283 回答
0

找到时用退格符替换文本文件中的整行

\b

于 2013-01-03T14:10:18.990 回答