Interface ByteStreamWriter
- All Known Implementing Classes:
- ByteBufferByteStreamWriter
The intended use case is wanting to write data to a byte array parameter that is stored off heap in a direct memory pool or in some other form that is inconvenient to assemble into a single heap-allocated buffer.
 Users should write their own implementation depending on the
 original data source. The driver provides a built-in implementation supporting the ByteBuffer class, see ByteBufferByteStreamWriter.
 Intended usage is to simply pass in an instance using
 PreparedStatement.setObject(int, Object):
     int bufLength = someBufferObject.length();
     preparedStatement.setObject(1, new MyByteStreamWriter(bufLength, someBufferObject));
 
 The length must be known ahead of the stream being written to.
This provides the application more control over memory management than calling
 PreparedStatement.setBinaryStream(int, InputStream) as with the latter the
 caller has no control over the buffering strategy. 
- 
Nested Class SummaryNested ClassesModifier and TypeInterfaceDescriptionstatic interfaceProvides a target to write bytes to.
- 
Method SummaryModifier and TypeMethodDescriptionintReturns the length of the stream.static ByteStreamWriterof(ByteBuffer... buf) voidWrite the data to the providedOutputStream.
- 
Method Details- 
getLengthint getLength()Returns the length of the stream.This must be known ahead of calling writeTo(ByteStreamTarget).- Returns:
- the number of bytes in the stream.
 
- 
writeToWrite the data to the providedOutputStream.Should not write more than getLength()bytes. If attempted, the provided stream will throw anIOException.- Parameters:
- target- the stream to write the data to
- Throws:
- IOException- if the underlying stream throws or there is some other error.
 
- 
of
 
-