Java 文件不会从临时文件传输回原始文件
这是我的代码摘录。 我已经搜索了堆栈溢出,并完成了所有建议,即删除原始文件并将临时文件重命名为原始文件,我还尝试了writer.flush。下面是.txt文件的外观 成绩输入:Java 文件不会从临时文件传输回原始文件,java,file,Java,File,这是我的代码摘录。 我已经搜索了堆栈溢出,并完成了所有建议,即删除原始文件并将临时文件重命名为原始文件,我还尝试了writer.flush。下面是.txt文件的外观 成绩输入: 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, C
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);
既然临时文件应该被删除,你怎么能看到它呢?结论:重命名没有发生。不要忽略delete和renameTo返回的布尔值。为什么File.delete在删除失败时不会引发异常?@JBNizet我当时打开了临时文件。当尝试关闭它时,仍然没有任何结果happens@Adamdo Boolean deletedSuccessfully=deleteRecord.delete;并打印DeletedSuccessfully的值,该值应为true,以便代码正常工作。与renamedSuccessfully相同=tempFile.renameTodeleteRecord;您还可以将这两行代码粘在一个try块中,看看是否可以捕获一个异常,该异常将告诉您到底出了什么问题。看见