Это в Java 6.
Я не раз видел, как люди создают временные файлы, что-то делают, а затем переименовывают в выходной файл.Все упаковано в блок try-finally, где временный файл удаляется в finally
на случай, если между ними что-то пойдет не так.
try {
//do something with tempFile
//do something with tempFile
//do something with tempFile
tempFile.renameTo(outputFile);
}
finally {
if (tempFile.exists())
tempFile.delete()
}
Мне было интересно, каковы преимущества этого вместо того, чтобы делатьчто-то напрямую в выходной файл и удалите его в случае исключений.
try {
//do something with outputFile
//do something with outputFile
//do something with outputFile
}
catch (Exception e) {
if (outputFile.exists())
outputFile.delete();
}
Я предполагаю, что удаление временных файлов в finally
дает мне преимущество, когда блок try может выдавать много видов исключений.Правильно ли мое предположение?Что еще?