code: public long copyTo(OutputStream output) throws IOException {
      checkNotNull(output);
  
      Closer closer = Closer.create();
      try {
        InputStream in = closer.register(openStream());
        return ByteStreams.copy(in, output);
      } catch (Throwable e) {
        throw closer.rethrow(e);
      } finally {
        closer.close();
      }
    }
docs: Copies the contents of this byte source to the given {@code OutputStream}. Does not close
  {@code output}.
  
  @throws IOException if an I/O error occurs in the process of reading from this source or
  writing to {@code output}