这是我的代码的摘录。 我搜索了Stack Overflow并完成了所有的建议,即删除原始文件并将temp重命名为original,我也尝试过writer.flush。这是.txt文件的样子。
GradeEnter:
1) Bob Do, Comp, 18
2) Matt Well, computing, 100
3) Adam Smith, Computing, 99
4) Mike Frank-Jones, Drama, 69
MyTempFile:
Matt Well, computing, 100
Adam Smith, Computing, 99
Mike Frank-Jones, Drama, 69
成绩输入(删除后):
Bob Do, Comp, 18
Matt Well, computing, 100
Adam Smith, Computing, 99
Mike Frank-Jones, Drama, 69
这是为什么?感谢
File deleteRecord = new File("GradeEnter.txt");
reader = new BufferedReader(new FileReader(deleteRecord));
File tempFile = new File("myTempFile.txt");
BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
Scanner scanner = new Scanner(System.in);
System.out.print("To delete, please Enter First Name: ");
firstNameDelete = scanner.nextLine();
System.out.print("Please Enter Surname: ");
lastNameDelete = scanner.nextLine();
String currentLine;
while((currentLine = reader.readLine()) != null) {
if(currentLine.contains(firstNameDelete) && currentLine.contains(lastNameDelete)) continue;
writer.write(currentLine);
writer.newLine();
}
reader.close();
writer.close();
deleteRecord.delete();
tempFile.renameTo(deleteRecord);