docs: private int bufferedPeek(final int offset) throws IOException {
      if (buffer.size() > offset) {
        // We've got enough of the file in memory already, we just pull from the buffer
        final ListIterator<Integer> iterator = buffer.listIterator(offset);
        return iterator.next();
      }
      // We don't have enough in the buffer to peek... Read until we do, then recurse.
      while (buffer.size() <= offset) {
        final int current = in.read();
        if (current < 0)
          return -1;
        buffer.add(current);
      }
      // Buffer should now be full enough to answer the request.
      return bufferedPeek(offset);
    }