code: public boolean isEmpty() throws IOException {
      Closer closer = Closer.create();
      try {
        InputStream in = closer.register(openStream());
        return in.read() == -1;
      } catch (Throwable e) {
        throw closer.rethrow(e);
      } finally {
        closer.close();
      }
    }
docs: Returns whether the source has zero bytes. The default implementation is to open a stream and
  check for EOF.
  
  @throws IOException if an I/O error occurs
  @since 15.0