public class ClobLocatorInputStream
extends java.io.InputStream
InputStream that will use an locator to fetch the
Clob value from the server.
Closing a ByteArrayInputStream has no effect. The methods in
this class can be called after the stream has been closed without
generating an IOException.
This InputStream implementation is pretty basic. No
buffering of data is done. Hence, for efficieny #read(byte[])
should be used instead of #read(). Marks are not supported, but it
should be pretty simple to extend the implementation to support
this. A more efficient skip implementation should also be
straight-forward.
| Modifier and Type | Field and Description |
|---|---|
private Clob |
clob
The Clob to be accessed.
|
private Connection |
connection
Connection used to read Clob from server.
|
private long |
currentPos
Current position in the underlying Clob.
|
| Constructor and Description |
|---|
ClobLocatorInputStream(Connection connection,
Clob clob)
Create an
InputStream for reading the
Clob value represented by the given locator based
Clob object. |
ClobLocatorInputStream(Connection connection,
Clob clob,
long pos)
Create an
InputStream for reading the
Clob value represented by the given locator based
Clob object. |
| Modifier and Type | Method and Description |
|---|---|
private byte[] |
getBytesFromString(java.lang.String str)
Returns a
Byte array from the
String passed as Input. |
int |
read() |
int |
read(byte[] b,
int off,
int len) |
private byte[] |
readBytes(int len)
Read the next
len bytes of the Clob
value from the server. |
private final Connection connection
private final Clob clob
private long currentPos
public ClobLocatorInputStream(Connection connection, Clob clob) throws SqlException
InputStream for reading the
Clob value represented by the given locator based
Clob object.connection - connection to be used to read the
Clob value from the serverclob - Clob object that contains locator for
the Clob value on the server.SqlExceptionpublic ClobLocatorInputStream(Connection connection, Clob clob, long pos) throws SqlException
InputStream for reading the
Clob value represented by the given locator based
Clob object.connection - connection to be used to read the
Clob value from the serverclob - Clob object that contains locator for
the Clob value on the server.pos - the position inside the Clob from which
the reading must begin.SqlExceptionpublic int read()
throws java.io.IOException
read in class java.io.InputStreamjava.io.IOExceptionThis method fetches one byte at a time from the server. For more
efficient retrieval, use #read(byte[]).public int read(byte[] b,
int off,
int len)
throws java.io.IOException
read in class java.io.InputStreamjava.io.IOExceptionInputStream.read(byte[], int, int)private byte[] readBytes(int len)
throws java.io.IOException
len bytes of the Clob
value from the server.len - number of bytes to readbyte[] containing the read bytesjava.io.IOException - Wrapped SqlException if reading
from server fails.private byte[] getBytesFromString(java.lang.String str)
Byte array from the
String passed as Input.str - the input String.Byte corresponding
to the String that was
input.Apache Derby V10.10 Internals - Copyright © 2004,2014 The Apache Software Foundation. All Rights Reserved.