java try finally block to close stream

Я хочу закрыть свой поток в конечном блоке, но он бросает IOException, так что кажется, что я должен вложить еще один try блок в мой finally блок, чтобы закрыть поток. Это правильный способ сделать это? Это кажется немного неуклюжим.

Вот код:

 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();
        }
    }


}
31
задан tshepang 4 February 2014 в 00:10
поделиться