Junior — Middle
Como garantir o fecho correto do ficheiro em caso de exceção durante o seu processamento?
sobes.tech IA
Resposta da IA
Em Java, para fechar corretamente um ficheiro em caso de exceção, recomenda-se usar a construção try-with-resources, que fecha automaticamente o recurso após a execução do bloco try, mesmo que ocorra uma exceção.
Exemplo:
try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
// processamento da linha
}
} catch (IOException e) {
e.printStackTrace();
}
Se, por alguma razão, não for possível usar try-with-resources (por exemplo, em versões antigas do Java), deve-se fechar o recurso no bloco finally:
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader("file.txt"));
String line;
while ((line = reader.readLine()) != null) {
// processamento da linha
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
Desta forma, o recurso é garantido que será fechado, prevenindo fugas de memória e bloqueios de ficheiros.