This class uses buffering while reading from a Blob. The simple constructor (the one that takes only a Blob or a BLOB) uses a default buffer size unless an optimal buffer size can be determined by the database. Users can also specify any buffer size using an alternate constructor.
In order to to use the JAI stream objects, you will need to include the following import statements in your Java file:
import java.sql.Blob;
import oracle.sql.BFILE;
In order to use JAI with Oracle Multimedia JAI stream objects, you will also need to import classes from the oracle.ord.media.jai.io package into your Java file.
Before running the methods associated with the BlobInputStream object, the following operations must have already been performed:
import javax.media.jai.JAI;
import java.awt.image.RenderedImage;
public class BlobInputStream extends com.sun.media.jai.codec.SeekableStream implements SeekableInputStream
Constructor and Description |
---|
BlobInputStream(java.sql.Blob blob)
Deprecated.
Creates a BlobInputStream object that reads from the specified Blob. The constructor uses a default buffer size of 64KB.
|
BlobInputStream(oracle.sql.BLOB blob)
Deprecated.
Creates a BlobInputStream object that reads from the specified Blob.
|
BlobInputStream(java.sql.Blob blob, int bufferHint)
Deprecated.
Creates a BlobInputStream object that reads from the specified Blob. The constructor uses the specified buffer size.
|
Modifier and Type | Method and Description |
---|---|
boolean |
canSeekBackwards()
Deprecated.
Checks whether or not the stream can seek backward. Because the BlobInputStream object can seek backward, this method will always return
true . |
void |
close()
Deprecated.
Closes the BlobInputStream object, releasing any resources being used.
|
static int |
computeBlobStreamBufferSize(int bufferHint)
Deprecated.
|
java.sql.Blob |
getBlob()
Deprecated.
Returns the LOB associated with the BlobInputStream object.
|
oracle.sql.BLOB |
getBLOB()
Deprecated.
Returns the LOB associated with the BlobInputStream object cast to an oracle.sql.BLOB.
|
java.lang.String |
getDBErrorMessage()
Deprecated.
Returns the database error message associated with the last error encountered.
|
long |
getFilePointer()
Deprecated.
Returns the offset from the beginning of the Blob at which the next read operation will occur.
|
boolean |
hasDBErrorMessage()
Deprecated.
Checks whether or not a database error message has been set.
|
void |
mark(int readLimit)
Deprecated.
Marks the current position in the BlobInputStream object. A call to the
reset() method will return you to the last marked position in the BlobInputStream object. |
boolean |
markSupported()
Deprecated.
Checks whether or not the BlobInputStream object supports marking. Because the BlobInputStream object supports marking, this method will always return
true . |
int |
read()
Deprecated.
Reads a single byte from the Blob associated with the BlobInputStream object. The value returned is between 0 and 255.
|
int |
read(byte[] b)
Deprecated.
Reads data from the Blob into the specified buffer.
|
int |
read(byte[] b, int off, int len)
Deprecated.
Reads up to the specified length of bytes of data from the Blob into the specified buffer, starting from the specified offset.
|
long |
remaining()
Deprecated.
Returns the number of unread bytes remaining in the Blob.
|
void |
reset()
Deprecated.
Repositions the stream to the position of the last valid mark.
|
void |
seek(long pos)
Deprecated.
Sets the offset from the beginning of the Blob, at which the next read operation will occur.
|
long |
skip(long n)
Deprecated.
Attempts to skip over the specified number of bytes in the Blob.
The number of bytes skipped may be smaller than the specified number; for example, the number would be smaller if the end of the file is reached. |
readBoolean, readByte, readChar, readCharLE, readDouble, readDoubleLE, readFloat, readFloatLE, readFully, readFully, readInt, readIntLE, readLine, readLong, readLongLE, readShort, readShortLE, readUnsignedByte, readUnsignedInt, readUnsignedIntLE, readUnsignedShort, readUnsignedShortLE, readUTF, skipBytes, wrapInputStream
public BlobInputStream(java.sql.Blob blob) throws java.io.IOException, java.sql.SQLException
blob
- the Blob from which data will be read.java.io.IOException
- if an IO exception occurs or if the value of the blob parameter is null
.java.sql.SQLException
- if a SQL exception occurs.public BlobInputStream(oracle.sql.BLOB blob) throws java.io.IOException, java.sql.SQLException
blob
- the Blob from which data will be read.java.io.IOException
- if an IO exception occurs or if the value of the blob parameter is null
.java.sql.SQLException
- if a SQL exception occurs.public BlobInputStream(java.sql.Blob blob, int bufferHint) throws java.io.IOException, java.sql.SQLException
blob
- the Blob from which data will be read.bufferHint
- the maximum amount of data to read from the Blob at one time.java.io.IOException
- if an IO exception occurs, or if the value of the blob parameter is null
.java.sql.SQLException
- if a SQL exception occurs.public oracle.sql.BLOB getBLOB()
java.lang.ClassCastException
- if the underlying LOB object is not an instance of oracle.sql.BLOB.public java.sql.Blob getBlob()
public long getFilePointer() throws java.io.IOException
SeekableInputStream
getFilePointer
in interface SeekableInputStream
getFilePointer
in class com.sun.media.jai.codec.SeekableStream
java.io.IOException
- if an IO error occurs.public int read() throws java.io.IOException
read
in interface SeekableInputStream
read
in class com.sun.media.jai.codec.SeekableStream
java.io.IOException
- if an IO error occurs.public int read(byte[] b) throws java.io.IOException
read
in interface SeekableInputStream
read
in class java.io.InputStream
b
- the buffer into which the data is read.java.io.IOException
- if an IO error occurs.public int read(byte[] b, int off, int len) throws java.io.IOException
read
in interface SeekableInputStream
read
in class com.sun.media.jai.codec.SeekableStream
b
- the buffer into which the data is read.off
- the offset from the beginning of the buffer at which data will be written, in bytes.len
- the maximum number of bytes to be read into the buffer.java.io.IOException
- if an IO error occurs.public void seek(long pos) throws java.io.IOException
seek
in interface SeekableInputStream
seek
in class com.sun.media.jai.codec.SeekableStream
pos
- the offset from the beginning of the Blob at which the next read operation will occur.java.io.IOException
- if the value of the pos parameter is less than zero or if an IO error occurs.public boolean canSeekBackwards()
true
.canSeekBackwards
in class com.sun.media.jai.codec.SeekableStream
true
.public void mark(int readLimit)
reset()
method will return you to the last marked position in the BlobInputStream object.mark
in class com.sun.media.jai.codec.SeekableStream
readLimit
- ignored by the class.public boolean markSupported()
true
.markSupported
in class com.sun.media.jai.codec.SeekableStream
true
.public void reset() throws java.io.IOException
reset
in class com.sun.media.jai.codec.SeekableStream
java.io.IOException
- if this stream has not been marked or the mark has been invalidated.public long skip(long n) throws java.io.IOException
The number of bytes skipped may be smaller than the specified number; for example, the number would be smaller if the end of the file is reached.
skip
in interface SeekableInputStream
skip
in class java.io.InputStream
n
- the number of bytes to be skipped.java.io.IOException
- if an IO error occurs.public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
close
in interface SeekableInputStream
close
in class java.io.InputStream
java.io.IOException
- if an IO error occurs.public long remaining()
public java.lang.String getDBErrorMessage()
String
with the last database error message, or null
if no such message existed.public boolean hasDBErrorMessage()
true
if an exception has occurred while communicating with the database that returned a supplementary error message; false
otherwise.public static int computeBlobStreamBufferSize(int bufferHint)