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.OutputStream
AnOutputStream
that will use an locator to write bytes to the Blob value on the server.Closing a
BlobLocatorOutputStream
has no effect. The methods in this class can be called after the stream has been closed without generating anIOException
.This
OutputStream
implementation 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 ClientBlob
blob
The Blob to be accessed.private ClientConnection
connection
Connection used to read Blob from server.private long
currentPos
Current position in the underlying Blob.
-
Constructor Summary
Constructors Constructor Description BlobLocatorOutputStream(ClientConnection connection, ClientBlob blob, long pos)
Create anOutputStream
for writing to theBlob
value represented by the given locator basedBlob
object.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
write(byte[] b)
void
write(byte[] b, int off, int len)
void
write(int b)
private void
writeBytes(byte[] b)
Write thebyte[]
to theBlob
value 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 anOutputStream
for writing to theBlob
value represented by the given locator basedBlob
object.- Parameters:
connection
- connection to be used to write to theBlob
value on the serverblob
-Blob
object that contains locator for theBlob
value on the server.pos
- the position in theBLOB
value 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:
write
in 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:
write
in 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:
write
in classjava.io.OutputStream
- Throws:
java.io.IOException
- See Also:
OutputStream.write(byte[], int, int)
-
writeBytes
private void writeBytes(byte[] b) throws java.io.IOException
Write thebyte[]
to theBlob
value 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.
-
-