0

重複の可能性:
Java - ファイル内の行を検索して削除

ID番号を取得してそのレコードを検索し、存在する場合は表示するコードがあります。

見つかったら削除してほしい。行(ユーザーレコード)を削除するための1つの解決策は、別のファイルを作成し、レコードが見つからないすべての行をコピーすることです。誰かが私に別の解決策を教えてもらえますか? (簡単な解決策)

私の 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

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 に答える