title: Closing a Java FileInputStream
body: <p>Alright, I have been doing the following (variable names have been changed):</p>
  
  <pre><code>
  FileInputStream fis = null;
  try
  {
      fis = new FileInputStream(file);
  
      ... process ...
  
  }
  catch (IOException e)
  {
      ... handle error ...
  }
  finally
  {
      if (fis != null)
          fis.close();
  }
  </code>
  </pre>
  
  <p>Recently, I started using FindBugs, which suggests that I am not properly closing streams.  I decide to see if there's anything that can be done with a finally{} block, and then I see, oh yeah, close() can throw IOException.  What are people supposed to do here?  The Java libraries throw too many checked exceptions.</p>