java intenta finalmente bloquear para cerrar la transmisión

Quiero cerrar mi transmisión en el bloque finalmente, pero arroja unIOException entonces parece que tengo que anidar otratry bloque en mifinally block para cerrar la transmisión. ¿Es esa la forma correcta de hacerlo? Parece un poco torpe.

Aquí está el código:

 public void read() {
    try {
        r = new BufferedReader(new InputStreamReader(address.openStream()));
        String inLine;
        while ((inLine = r.readLine()) != null) {
            System.out.println(inLine);
        }
    } catch (IOException readException) {
        readException.printStackTrace();
    } finally {
        try {
            if (r!=null) r.close();
        } catch (Exception e){
            e.printStackTrace();
        }
    }


}

Respuestas a la pregunta(8)

Su respuesta a la pregunta