Comment puis-je fermer un fichier après l'interception d'une IOException en java?

Tous,

Je suis en train de vous assurer qu'un fichier que j'ai ouvert avec BufferedReader est fermé quand je attraper une IOException, mais il semble comme si mon BufferedReader objet qui est hors de portée dans le bloc catch.

public static ArrayList readFiletoArrayList(String fileName, ArrayList fileArrayList)
{
    fileArrayList.removeAll(fileArrayList);

    try {
        //open the file for reading
        BufferedReader fileIn = new BufferedReader(new FileReader(fileName));

        //add line by line to array list, until end of file is reached
        //when buffered reader returns null (todo). 
        while(true){
                fileArrayList.add(fileIn.readLine());
            }
    }catch(IOException e){
        fileArrayList.removeAll(fileArrayList);
        fileIn.close(); 
        return fileArrayList; //returned empty. Dealt with in calling code. 
    }
}

Netbeans se plaint qu'il ne peut pas trouver le symbole fileIn" dans le bloc catch, mais je veux m'assurer que, dans le cas d'une IOException que le Lecteur ait fermé. Comment puis-je le faire sans la laideur d'un deuxième try/catch autour de la première?

Des conseils ou des indications sur les meilleures pratiques dans cette situation est appréciée,

OriginalL'auteur DimDom | 2010-04-15