code: @Override
    public int read(byte []buf, int offset, int length)
      throws IOException
    {
      int sublen = Math.min(_tail - _offset, length);
      
      System.arraycopy(_pageBuffer, _offset, buf, offset, sublen);
      
      _offset += sublen;
      
      return sublen > 0 ? sublen : -1;
    }
docs: Reads a buffer.