|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectjava.io.InputStream
java.io.FilterInputStream
org.apache.tika.io.TailStream
public class TailStream
A specialized input stream implementation which records the last portion read from an underlying stream.
This stream implementation is useful to deal with information which is known to be located at the end of a stream (e.g. ID3 v1 tags). While reading bytes from the underlying stream, a given number of bytes is kept in an internal buffer. This buffer can then be queried after the whole stream was read. It contains the last bytes read from the original input stream.
| Field Summary |
|---|
| Fields inherited from class java.io.FilterInputStream |
|---|
in |
| Constructor Summary | |
|---|---|
TailStream(InputStream in,
int size)
Creates a new instance of TailStream. |
|
| Method Summary | |
|---|---|
byte[] |
getTail()
Returns an array with the last data read from the underlying stream. |
void |
mark(int limit)
This implementation saves the internal state including the content of the tail buffer so that it can be restored when ''reset()'' is called later. |
int |
read()
This implementation adds the read byte to the internal tail buffer. |
int |
read(byte[] buf)
This implementation delegates to the underlying stream and then adds the correct portion of the read buffer to the internal tail buffer. |
int |
read(byte[] buf,
int ofs,
int length)
This implementation delegates to the underlying stream and then adds the correct portion of the read buffer to the internal tail buffer. |
void |
reset()
This implementation restores this stream's state to the state when ''mark()'' was called the last time. |
long |
skip(long n)
This implementation delegates to the read() method
to ensure that the tail buffer is also filled if data is skipped. |
| Methods inherited from class java.io.FilterInputStream |
|---|
available, close, markSupported |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public TailStream(InputStream in,
int size)
TailStream.
in - the underlying input streamsize - the size of the tail buffer| Method Detail |
|---|
public int read()
throws IOException
read in class FilterInputStreamIOException
public int read(byte[] buf)
throws IOException
read in class FilterInputStreamIOException
public int read(byte[] buf,
int ofs,
int length)
throws IOException
read in class FilterInputStreamIOException
public long skip(long n)
throws IOException
read() method
to ensure that the tail buffer is also filled if data is skipped.
skip in class FilterInputStreamIOExceptionpublic void mark(int limit)
mark in class FilterInputStreampublic void reset()
reset in class FilterInputStreampublic byte[] getTail()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||