Есть старый добрый рецепт, изначально разработанный Бьярном Страуструпом для C ++, перенесенный сюда на Java:
Result tryOpenFile(File f) {
while (true) {
try {
// try to open the file
return result; // or break
} catch (FileNotFoundException e) {
// try to recover, wait, whatever
}
}
}