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).
Inherited Members
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 |
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 |
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 |
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 |
Exceptions | |
---|---|
Type | Description |
IOException |
thrown if an error occurred while writing |