text: public void write(byte[] b, int off, int len) throws IOException {if ((off < 0) || (off > b.length) || (len < 0) ||((off + len) > b.length) || ((off + len) < 0)) {throw new IndexOutOfBoundsException();} else if (len == 0) {return;}do {createBlockIfNeeded();int writeBytes = Math.min(buffer.remaining(), len);buffer.put(b, off, writeBytes);off += writeBytes;len -= writeBytes;} while (len > 0);}