Package org.apache.derby.client.am
Class BlobLocatorOutputStream
- java.lang.Object
-
- java.io.OutputStream
-
- org.apache.derby.client.am.BlobLocatorOutputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
class BlobLocatorOutputStream extends java.io.OutputStreamAnOutputStreamthat will use an locator to write bytes to the Blob value on the server.Closing a
BlobLocatorOutputStreamhas no effect. The methods in this class can be called after the stream has been closed without generating anIOException.This
OutputStreamimplementation is pretty basic. No buffering of data is done. Hence, for efficiency #write(byte[]) should be used instead of #write(int).
-
-
Field Summary
Fields Modifier and Type Field Description private ClientBlobblobThe Blob to be accessed.private ClientConnectionconnectionConnection used to read Blob from server.private longcurrentPosCurrent position in the underlying Blob.
-
Constructor Summary
Constructors Constructor Description BlobLocatorOutputStream(ClientConnection connection, ClientBlob blob, long pos)Create anOutputStreamfor writing to theBlobvalue represented by the given locator basedBlobobject.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidwrite(byte[] b)voidwrite(byte[] b, int off, int len)voidwrite(int b)private voidwriteBytes(byte[] b)Write thebyte[]to theBlobvalue on the server; starting from the current position of this stream.
-
-
-
Field Detail
-
connection
private final ClientConnection connection
Connection used to read Blob from server.
-
blob
private final ClientBlob blob
The Blob to be accessed.
-
currentPos
private long currentPos
Current position in the underlying Blob. Blobs are indexed from 1
-
-
Constructor Detail
-
BlobLocatorOutputStream
BlobLocatorOutputStream(ClientConnection connection, ClientBlob blob, long pos) throws SqlException
Create anOutputStreamfor writing to theBlobvalue represented by the given locator basedBlobobject.- Parameters:
connection- connection to be used to write to theBlobvalue on the serverblob-Blobobject that contains locator for theBlobvalue on the server.pos- the position in theBLOBvalue at which to start writing; the first position is 1- Throws:
SqlException
-
-
Method Detail
-
write
public void write(int b) throws java.io.IOException- Specified by:
writein classjava.io.OutputStream- Throws:
java.io.IOException- See Also:
This method writes one byte at a time to the server. For more efficient writing, use #write(byte[]).
-
write
public void write(byte[] b) throws java.io.IOException- Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException- See Also:
OutputStream.write(byte[])
-
write
public void write(byte[] b, int off, int len) throws java.io.IOException- Overrides:
writein classjava.io.OutputStream- Throws:
java.io.IOException- See Also:
OutputStream.write(byte[], int, int)
-
writeBytes
private void writeBytes(byte[] b) throws java.io.IOExceptionWrite thebyte[]to theBlobvalue on the server; starting from the current position of this stream.- Parameters:
b- The byte array containing the bytes to be written- Throws:
java.io.IOException- Wrapped SqlException if writing to server fails.
-
-