我正在尝试从File中删除特定记录,但每次运行它都会删除整个文件。任何人都可以告诉我们该在哪里?
我添加了temp db,方法也正确。循环逻辑存在一些问题。请帮助我。谢谢!
public void DeleteRecordByID() throws IOException {
Scanner strInput = new Scanner(System.in);
String ID, record;
File tempDB = new File("employees.txt");
File db = new File("employees.txt");
BufferedReader br = new BufferedReader( new FileReader( db ) );
BufferedWriter bw = new BufferedWriter( new FileWriter( tempDB ) );
System.out.println("\t\t Delete Employee Record\n");
System.out.println("Enter the Employee ID: ");
ID = strInput.nextLine();
while( ( record = br.readLine() ) != null ) {
if( record.contains(ID) )
continue;
bw.write(record);
bw.flush();
bw.newLine();
}
br.close();
bw.close();
db.delete();
tempDB.renameTo(db);
}
答案 0 :(得分:1)
您应该使用两个不同的文件名,一个用于阅读,另一个用于写作。
答案 1 :(得分:0)
您应该创建一个用于编写数据的临时文件。之后,您可以删除原始文件,然后将临时文件重命名为原始文件。