text: public void readBytes(byte[] b, int offset, int len) {assert b.length >= offset + len;final int offsetEnd = offset + len;while (true) {final int blockLeft = blockSize - currentBlockUpto;final int left = offsetEnd - offset;if (blockLeft < left) {System.arraycopy(currentBlock, currentBlockUpto,b, offset,blockLeft);nextBlock();offset += blockLeft;} else {System.arraycopy(currentBlock, currentBlockUpto,b, offset,left);currentBlockUpto += left;break;}}}