code: public ImmutableList<String> readLines() throws IOException {
      Closer closer = Closer.create();
      try {
        BufferedReader reader = closer.register(openBufferedStream());
        List<String> result = Lists.newArrayList();
        String line;
        while ((line = reader.readLine()) != null) {
          result.add(line);
        }
        return ImmutableList.copyOf(result);
      } catch (Throwable e) {
        throw closer.rethrow(e);
      } finally {
        closer.close();
      }
    }
docs: Reads all the lines of this source as a list of strings. The returned list will be empty if
  this source is empty.
  
  <p>Like {@link BufferedReader#readLine()}, this method considers a line to be a sequence of
  text that is terminated by (but does not include) one of {@code \r\n}, {@code \r} or {@code
  \n}. If the source's content does not end in a line termination sequence, it is treated as if
  it does.
  
  @throws IOException if an I/O error occurs while reading from this source