muszę otoczyć plik fileInputStream.close blokiem try / catch / finally? Jak to jest zrobione?
Mam następującą klasę Java, która robi jedną rzecz, odpala wartości z config.properties.
Kiedy nadchodzi czas zamknięciafileInputStream
, Myślę, że czytałem na Wikipedii, że dobrze jest mieć ją w ostatecznym bloku. Ponieważ naprawdę działa dobrze w bloku try / catch.
Czy możesz mi pokazać poprawkę?fileInputStream.close()
w ostatniej sekcji?
Baza pakietów ConfigProperties.java;
import java.io.FileInputStream;
import java.util.Properties;
public class ConfigProperties {
public FileInputStream fileInputStream;
public String property;
public String getConfigProperties(String strProperty) {
Properties configProperties = new Properties();
try {
fileInputStream = new FileInputStream("resources/config.properties");
configProperties.load(fileInputStream);
property = configProperties.getProperty(strProperty);
System.out.println("getConfigProperties(" + strProperty + ")");
// use a finally block to close your Stream.
// If an exception occurs, do you want the application to shut down?
} catch (Exception ex) {
// TODO
System.out.println("Exception: " + ex);
}
finally {
fileInputStream.close();
}
return property;
}
}
Czy rozwiązaniem jest tylko to, co sugeruje Eclipse i robi to w bloku wreszcie?
finally {
try {
fileInputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Dziękuję wszystkim!