public void write(int value) throws ClosedChannelException { if (current >= bufferOffset + buffer.length) reBuffer(); assert current < bufferOffset + buffer.length : String.format("File (%s) offset %d, buffer offset %d.", getPath(), current, bufferOffset); buffer[bufferCursor()] = (byte) value; validBufferBytes += 1; current += 1; isDirty = true; syncNeeded = true; }
private int writeAtMost(byte[] data, int offset, int length) { if (current >= bufferOffset + buffer.length) reBuffer(); assert current < bufferOffset + buffer.length : String.format("File (%s) offset %d, buffer offset %d.", getPath(), current, bufferOffset); int toCopy = Math.min(length, buffer.length - bufferCursor()); // copy bytes from external buffer System.arraycopy(data, offset, buffer, bufferCursor(), toCopy); assert current <= bufferOffset + buffer.length : String.format("File (%s) offset %d, buffer offset %d.", getPath(), current, bufferOffset); validBufferBytes = Math.max(validBufferBytes, bufferCursor() + toCopy); current += toCopy; return toCopy; }
private int writeAtMost(ByteBuffer data, int offset, int length) { if (current >= bufferOffset + buffer.length) reBuffer(); assert current < bufferOffset + buffer.length : String.format("File (%s) offset %d, buffer offset %d.", getPath(), current, bufferOffset); int toCopy = Math.min(length, buffer.length - bufferCursor()); // copy bytes from external buffer ByteBufferUtil.arrayCopy(data, offset, buffer, bufferCursor(), toCopy); assert current <= bufferOffset + buffer.length : String.format("File (%s) offset %d, buffer offset %d.", getPath(), current, bufferOffset); validBufferBytes = Math.max(validBufferBytes, bufferCursor() + toCopy); current += toCopy; return toCopy; }