code: public ByteBuffer append(byte b[], int off, int len) {
          if ((off < 0) || (off > b.length) || (len < 0) ||
          ((off + len) > b.length) || ((off + len) < 0) || len == 0)
              return this;
          int newcount = count + len;
          if (newcount > buf.length) {
              byte newbuf[] = new byte[Math.max(buf.length << 1, newcount)];
              System.arraycopy(buf, 0, newbuf, 0, count);
              buf = newbuf;
          }
          System.arraycopy(b, off, buf, count, len);
          count = newcount;
          return this;
      }
docs: Appends the subarray of the <CODE>byte</CODE> array. The buffer will grow by
  <CODE>len</CODE> bytes.
  @param b the array to be appended
  @param off the offset to the start of the array
  @param len the length of bytes to append
  @return a reference to this <CODE>ByteBuffer</CODE> object