La try-with-resources
dichiarazione.
Il try-with-resources statement
è una try
dichiarazione che dichiara una o più risorse. A resource
è un oggetto che deve essere chiuso al termine del programma. Il try-with-resources statement
assicura 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 BufferedReader
per 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' BufferedReader
istanza 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.readLine
lancia un IOException
).
Prima di Java SE 7, è possibile utilizzare un finally
blocco per assicurarsi che una risorsa sia chiusa indipendentemente dal fatto che l'istruzione try venga completata normalmente o bruscamente. L'esempio seguente utilizza un finally
blocco anziché try-with-resources
un'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 .