@Override public void write(int b) { if (currentSlabIndex == currentSlab.length) { addSlab(1); } currentSlab[currentSlabIndex] = (byte) b; currentSlabIndex += 1; bytesUsed += 1; }
@Override public void write(int b) { if (currentSlabIndex == currentSlab.length) { addSlab(1); } currentSlab[currentSlabIndex] = (byte) b; currentSlabIndex += 1; bytesUsed += 1; }
@Override public void write(byte b[], int off, int len) { if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) - b.length > 0)) { throw new IndexOutOfBoundsException( String.format("Given byte array of size %d, with requested length(%d) and offset(%d)", b.length, len, off)); } if (currentSlabIndex + len >= currentSlab.length) { final int length1 = currentSlab.length - currentSlabIndex; arraycopy(b, off, currentSlab, currentSlabIndex, length1); final int length2 = len - length1; addSlab(length2); arraycopy(b, off + length1, currentSlab, currentSlabIndex, length2); currentSlabIndex = length2; } else { arraycopy(b, off, currentSlab, currentSlabIndex, len); currentSlabIndex += len; } bytesUsed += len; }
@Override public void write(byte b[], int off, int len) { if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) - b.length > 0)) { throw new IndexOutOfBoundsException( String.format("Given byte array of size %d, with requested length(%d) and offset(%d)", b.length, len, off)); } if (currentSlabIndex + len >= currentSlab.length) { final int length1 = currentSlab.length - currentSlabIndex; arraycopy(b, off, currentSlab, currentSlabIndex, length1); final int length2 = len - length1; addSlab(length2); arraycopy(b, off + length1, currentSlab, currentSlabIndex, length2); currentSlabIndex = length2; } else { arraycopy(b, off, currentSlab, currentSlabIndex, len); currentSlabIndex += len; } bytesUsed += len; }