@Override public void write(int b) { if (!currentSlab.hasRemaining()) { addSlab(1); } currentSlab.put(currentSlabIndex, (byte) b); currentSlabIndex += 1; currentSlab.position(currentSlabIndex); bytesUsed += 1; }
@Override public void write(int b) { if (!currentSlab.hasRemaining()) { addSlab(1); } currentSlab.put(currentSlabIndex, (byte) b); currentSlabIndex += 1; currentSlab.position(currentSlabIndex); 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 (len >= currentSlab.remaining()) { final int length1 = currentSlab.remaining(); currentSlab.put(b, off, length1); bytesUsed += length1; currentSlabIndex += length1; final int length2 = len - length1; addSlab(length2); currentSlab.put(b, off + length1, length2); currentSlabIndex = length2; bytesUsed += length2; } else { currentSlab.put(b, off, 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 (len >= currentSlab.remaining()) { final int length1 = currentSlab.remaining(); currentSlab.put(b, off, length1); bytesUsed += length1; currentSlabIndex += length1; final int length2 = len - length1; addSlab(length2); currentSlab.put(b, off + length1, length2); currentSlabIndex = length2; bytesUsed += length2; } else { currentSlab.put(b, off, len); currentSlabIndex += len; bytesUsed += len; } }