|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.io.InputStream org.apache.tika.utils.RereadableInputStream
public class RereadableInputStream
Wraps an input stream, reading it only once, but making it available for rereading an arbitrary number of times. The stream's bytes are stored in memory up to a user specified maximum, and then stored in a temporary file which is deleted when this class' close() method is called.
Constructor Summary | |
---|---|
RereadableInputStream(java.io.InputStream inputStream,
int maxBytesInMemory,
boolean readToEndOfStreamOnFirstRewind,
boolean closeOriginalStreamOnClose)
Creates a rereadable input stream. |
Method Summary | |
---|---|
void |
close()
Closes the input stream and removes the temporary file if one was created. |
int |
getSize()
Returns the number of bytes read from the original stream. |
int |
read()
Reads a byte from the stream, saving it in the store if it is being read from the original stream. |
void |
rewind()
"Rewinds" the stream to the beginning for rereading. |
Methods inherited from class java.io.InputStream |
---|
available, mark, markSupported, read, read, reset, skip |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public RereadableInputStream(java.io.InputStream inputStream, int maxBytesInMemory, boolean readToEndOfStreamOnFirstRewind, boolean closeOriginalStreamOnClose)
inputStream
- stream containing the source of datamaxBytesInMemory
- maximum number of bytes to use to store
the stream's contents in memory before switching to disk; note that
the instance will preallocate a byte array whose size is
maxBytesInMemory. This byte array will be made available for
garbage collection (i.e. its reference set to null) when the
content size exceeds the array's size, when close() is called, or
when there are no more references to the instance.readToEndOfStreamOnFirstRewind
- Specifies whether or not to
read to the end of stream on first rewind. If this is set to false,
then when rewind() is first called, only those bytes already read
from the original stream will be available from then on.Method Detail |
---|
public int read() throws java.io.IOException
read
in class java.io.InputStream
java.io.IOException
public void rewind() throws java.io.IOException
java.io.IOException
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in class java.io.InputStream
java.io.IOException
public int getSize()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |