title: How do I close a file after catching an IOException in java?
body: <p>All,</p>
  
  <p>I am trying to ensure that a file I have open with  BufferedReader is closed when I catch an IOException, but it appears as if my BufferedReader object is out of scope in the catch block.</p>
  
  <pre><code>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. 
      }
  }
  </code></pre>
  
  <p>Netbeans complains that it "cannot find symbol fileIn" in the catch block, but I want to ensure that in the case of an IOException that the Reader gets closed. How can I do that without the ugliness of a second try/catch construct around the first?</p>
  
  <p>Any tips or pointers as to best practise in this situation is appreciated, </p>