this.blockMask = blockSize - 1;
long left = numBytes;
while (left > 0) {
final int chunk = (int) Math.min(blockSize, left);
ByteArray block = factory.newByteArray(chunk);
block.readBytes(in, 0, block.length());
blocks.add(block);
left -= chunk;
}
// So .getPosition still works