Я полагаю, это может быть из-за того, что программа не может проверить недавний статус удаления файла.Вы можете отладить это, попробовав следующий код:
MyDataClass.save(tempfile);
if(originalfile.delete()==true){
tempfile.renameTo(originalfile);
}
else{
System.out.println("File is not deleted");
}
Или вы можете попробовать это.
MyDataClass.save(tempfile);
originalfile.delete();
Thread.sleep(4000);//Make the thread sleep so that the recent status can be detected
tempfile.renameTo(originalfile);
Кроме того, я вижу, что вы использовали MyDataClass.save для сохранения файла,Проверьте, не закрыли ли вы файл после сохранения.
Если файл заблокирован при попытке переименования, он может не работать
Кроме того, если вы используете проводник Windows для просмотра ваших файлов, возможно, вы захотите обновить, чтобы увидеть недавно созданный файл