code: public byte[] readRegion(int off, int len) {
      	this.buffer.rewind();
          if (off < 0 || len <= 0 || off + len > this.buffer.limit()) {
              return null;
          }
  
          byte[] region = new byte[len];
          this.buffer.get(region, off, len);
          return region;
      }
docs: Read a byte region from specified offset with specified length
  
  @param off start offset of the region to be read
  @param len length of the region to be read
  @return byte array of [offset, offset + length)