Class ByteOutput (3.19.4)

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
Name Description
value byte

the byte to be written

Exceptions
Type Description
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
Name Description
value byte[]

the bytes to be written

offset int

the offset of the start of the writable range

length int

the number of bytes to write starting from offset

Exceptions
Type Description
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
Name Description
value ByteBuffer

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

Exceptions
Type Description
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
Name Description
value byte[]

the bytes to be written

offset int

the offset of the start of the writable range

length int

the number of bytes to write starting from offset

Exceptions
Type Description
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
Name Description
value ByteBuffer

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

Exceptions
Type Description
IOException

thrown if an error occurred while writing