code: public Reader readAll() throws IOException {
          return new InputStreamReader(new InputStream() {
              final Session session = source.open();
              public int read() throws IOException {
                  byte[] buf = new byte[1];
                  int n = session.read(buf);
                  if(n==1)    return buf[0];
                  else        return -1; // EOF
              }
  
              public int read(byte[] buf, int off, int len) throws IOException {
                  return session.read(buf,off,len);
              }
  
              public void close() throws IOException {
                  session.close();
              }
          });
      }
docs: Returns {@link Reader} for reading the raw bytes.