@Override public int read(char cbuf[],int off,int len) throws IOException {
  ensureOpen();
  if (len == 0) {
    return 0;
  }
  if (next >= length)   return -1;
  int n=Math.min(length - next,len);
  str.getChars(next,next + n,cbuf,off);
  next+=n;
  return n;
}

@ Override public int read ( char cbuf [ ] , int off , int len ) throws IOException { ensureOpen ( ) ; if ( len == 0 ) { return 0 ; } if ( next >= length ) return - 1 ; int n = Math . min ( length - next , len ) ; str . getChars ( next , next + n , cbuf , off ) ; next += n ; return n ; }
reads characters into a portion of an array .
