org.postgresql.largeobject
Class BlobInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.postgresql.largeobject.BlobInputStream
All Implemented Interfaces:
java.io.Closeable

public class BlobInputStream
extends java.io.InputStream

This is an implementation of an InputStream from a large object.


Constructor Summary
BlobInputStream(LargeObject lo)
           
BlobInputStream(LargeObject lo, int bsize)
           
BlobInputStream(LargeObject lo, int bsize, long limit)
           
 
Method Summary
 void close()
          Closes this input stream and releases any system resources associated with the stream.
 void mark(int readlimit)
          Marks the current position in this input stream.
 boolean markSupported()
          Tests if this input stream supports the mark and reset methods.
 int read()
          The minimum required to implement input stream
 void reset()
          Repositions this stream to the position at the time the mark method was last called on this input stream.
 
Methods inherited from class java.io.InputStream
available, read, read, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BlobInputStream

public BlobInputStream(LargeObject lo)
Parameters:
lo - LargeObject to read from

BlobInputStream

public BlobInputStream(LargeObject lo,
                       int bsize)
Parameters:
lo - LargeObject to read from
bsize - buffer size

BlobInputStream

public BlobInputStream(LargeObject lo,
                       int bsize,
                       long limit)
Parameters:
lo - LargeObject to read from
bsize - buffer size
Method Detail

read

public int read()
         throws java.io.IOException
The minimum required to implement input stream

Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Closes this input stream and releases any system resources associated with the stream.

The close method of InputStream does nothing.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException - if an I/O error occurs.

mark

public void mark(int readlimit)
Marks the current position in this input stream. A subsequent call to the reset method repositions this stream at the last marked position so that subsequent reads re-read the same bytes.

The readlimit arguments tells this input stream to allow that many bytes to be read before the mark position gets invalidated.

The general contract of mark is that, if the method markSupported returns true, the stream somehow remembers all the bytes read after the call to mark and stands ready to supply those same bytes again if and whenever the method reset is called. However, the stream is not required to remember any data at all if more than readlimit bytes are read from the stream before reset is called.

Marking a closed stream should not have any effect on the stream.

Overrides:
mark in class java.io.InputStream
Parameters:
readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid.
See Also:
InputStream.reset()

reset

public void reset()
           throws java.io.IOException
Repositions this stream to the position at the time the mark method was last called on this input stream. NB: If mark is not called we move to the begining.

Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException
See Also:
InputStream.mark(int), IOException

markSupported

public boolean markSupported()
Tests if this input stream supports the mark and reset methods. The markSupported method of InputStream returns false.

Overrides:
markSupported in class java.io.InputStream
Returns:
true if this true type supports the mark and reset method; false otherwise.
See Also:
InputStream.mark(int), InputStream.reset()