public abstract class ByteOutputAn 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).
Constructors
ByteOutput()
public ByteOutput()Methods
write(byte value)
public abstract void write(byte value)Writes a single byte.
| Parameter | |
|---|---|
| Name | Description | 
| value | bytethe 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 | intthe offset of the start of the writable range | 
| length | intthe 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 | ByteBufferthe 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 | intthe offset of the start of the writable range | 
| length | intthe 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 | ByteBufferthe bytes to be written. Upon returning from this call, the  | 
| Exceptions | |
|---|---|
| Type | Description | 
| IOException | thrown if an error occurred while writing |