code: public static LineIterator iterate(final File file, final Charset encoding) throws UncheckedIOException {
          InputStream in = null;
  
          try {
              in = new FileInputStream(file);
  
              return iterate(in, encoding);
          } catch (final IOException ex) {
              closeQuietly(in);
              throw new UncheckedIOException(ex);
          } catch (final RuntimeException ex) {
              closeQuietly(in);
              throw ex;
          }
      }
docs: Returns an Iterator for the lines in a <code>File</code>.
  <p>
  This method opens an <code>InputStream</code> for the file.
  When you have finished with the iterator you should close the stream
  to free internal resources. This can be done by calling the
  {@link LineIterator#close()} or
  {@link IOUtil#closeQuietly(LineIterator)} method.
  <p>
  The recommended usage pattern is:
  <pre>
  LineIterator it = FileUtils.iterate(file, "UTF-8");
  try {
  while (it.hasNext()) {
  String line = it.nextLine();
  /// do something with line
  }
  } finally {
  closeQuietly(iterator);
  }
  </pre>
  <p>
  If an exception occurs during the creation of the iterator, the
  underlying stream is closed.
  
  @param file  the file to open for input, must not be {@code null}
  @param encoding  the encoding to use, {@code null} means platform default
  @return an Iterator of the lines in the file, never {@code null}
  @throws UncheckedIOException in case of an I/O error (file closed)