Package net.i2p.util
Class LookaheadInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
net.i2p.util.LookaheadInputStream
- All Implemented Interfaces:
 Closeable,AutoCloseable
Simple lookahead buffer to keep the last K bytes in reserve,
 configured to easily be reused.  Currently only used by the
 ResettableGZIPInputStream.
- 
Field Summary
Fields inherited from class java.io.FilterInputStream
in - 
Constructor Summary
ConstructorsConstructorDescriptionLookaheadInputStream(int lookaheadSize) Configure a stream that hides a number of bytes from the reader. - 
Method Summary
Modifier and TypeMethodDescriptionbooleanbyte[]Grab the lookahead footer.voidinitialize(InputStream src) Start the LookaheadInputStream with the given input stream.intread()intread(byte[] buf, int off, int len) longskip(long n) Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, read, resetMethods inherited from class java.io.InputStream
nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo 
- 
Constructor Details
- 
LookaheadInputStream
public LookaheadInputStream(int lookaheadSize) Configure a stream that hides a number of bytes from the reader. The last n bytes will never be available from read(), they can only be obtained from getFooter(). initialize() MUST be called before doing any read() calls.- Parameters:
 lookaheadSize- how many bytes to hide
 
 - 
 - 
Method Details
- 
getEOFReached
public boolean getEOFReached() - 
initialize
Start the LookaheadInputStream with the given input stream. Resets everything if the LookaheadInputStream was previously used. WARNING - blocking until lookaheadSize bytes are read!- Throws:
 IOException- if less than lookaheadSize bytes could be read.
 - 
read
- Overrides:
 readin classFilterInputStream- Throws:
 IOException
 - 
read
- Overrides:
 readin classFilterInputStream- Throws:
 IOException
 - 
skip
- Overrides:
 skipin classFilterInputStream- Throws:
 IOException- Since:
 - 0.9.33
 
 
 -