Class ByteOutput

public abstract class ByteOutput

An output target for raw bytes. This interface provides semantics that support two types of writing:

Traditional write operations: (as defined by java.io.OutputStream) where the target method is responsible for either copying the data or completing the write before returning from the method call.

Lazy write operations: where the caller guarantees that it will never modify the provided buffer and it can therefore be considered immutable. The target method is free to maintain a reference to the buffer beyond the scope of the method call (e.g. until the write operation completes).

Inheritance

java.lang.Object > ByteOutput

Constructors

ByteOutput()

public ByteOutput()

Methods

write(byte value)

public abstract void write(byte value)

Writes a single byte.

Parameter
NameDescription
valuebyte

the byte to be written

Exceptions
TypeDescription
IOException

thrown if an error occurred while writing

write(byte[] value, int offset, int length)

public abstract void write(byte[] value, int offset, int length)

Writes a sequence of bytes. The ByteOutput must copy value if it will not be processed prior to the return of this method call, since value may be reused/altered by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameters
NameDescription
valuebyte[]

the bytes to be written

offsetint

the offset of the start of the writable range

lengthint

the number of bytes to write starting from offset

Exceptions
TypeDescription
IOException

thrown if an error occurred while writing

write(ByteBuffer value)

public abstract void write(ByteBuffer value)

Writes a sequence of bytes. The ByteOutput must copy value if it will not be processed prior to the return of this method call, since value may be reused/altered by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameter
NameDescription
valueByteBuffer

the bytes to be written. Upon returning from this call, the position of this buffer will be set to the limit

Exceptions
TypeDescription
IOException

thrown if an error occurred while writing

writeLazy(byte[] value, int offset, int length)

public abstract void writeLazy(byte[] value, int offset, int length)

Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameters
NameDescription
valuebyte[]

the bytes to be written

offsetint

the offset of the start of the writable range

lengthint

the number of bytes to write starting from offset

Exceptions
TypeDescription
IOException

thrown if an error occurred while writing

writeLazy(ByteBuffer value)

public abstract void writeLazy(ByteBuffer value)

Writes a sequence of bytes. The ByteOutput is free to retain a reference to the value beyond the scope of this method call (e.g. write later) since it is considered immutable and is guaranteed not to change by the caller.

NOTE: This method MUST NOT modify the value. Doing so is a programming error and will lead to data corruption which will be difficult to debug.

Parameter
NameDescription
valueByteBuffer

the bytes to be written. Upon returning from this call, the position of this buffer will be set to the limit

Exceptions
TypeDescription
IOException

thrown if an error occurred while writing