La try-with-resourcesdichiarazione.
Il try-with-resources statementè una trydichiarazione che dichiara una o più risorse. A resourceè un oggetto che deve essere chiuso al termine del programma. Il try-with-resources statementassicura che ogni risorsa sia chiuso alla fine dell'istruzione. Qualsiasi oggetto che implementa java.lang.AutoCloseable, che include tutti gli oggetti che implementano java.io.Closeable, può essere utilizzato come risorsa.
L'esempio seguente legge la prima riga da un file. Utilizza un'istanza di BufferedReaderper leggere i dati dal file. BufferedReaderè una risorsa che deve essere chiusa al termine del programma:
static String readFirstLineFromFile(String path) throws IOException {
try (BufferedReader br =
new BufferedReader(new FileReader(path))) {
return br.readLine();
}
}
In questo esempio, la risorsa dichiarata nell'istruzione try-with-resources è BufferedReader. La dichiarazione di dichiarazione appare tra parentesi immediatamente dopo la parola chiave try. La classe BufferedReader, in Java SE 7 e versioni successive, implementa l'interfaccia java.lang.AutoCloseable. Poiché l' BufferedReaderistanza viene dichiarata in un'istruzione try-with-resource, verrà chiusa indipendentemente dal fatto che l'istruzione try venga completata normalmente o bruscamente (come risultato del metodo che BufferedReader.readLinelancia un IOException).
Prima di Java SE 7, è possibile utilizzare un finallyblocco per assicurarsi che una risorsa sia chiusa indipendentemente dal fatto che l'istruzione try venga completata normalmente o bruscamente. L'esempio seguente utilizza un finallyblocco anziché try-with-resourcesun'istruzione:
static String readFirstLineFromFileWithFinallyBlock(String path)
throws IOException {
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
} finally {
if (br != null) br.close();
}
}
Si prega di fare riferimento alla documentazione .