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!

questionAnswers(3)

yourAnswerToTheQuestion