Class PeekableInputStream
- java.lang.Object
 - 
- java.io.InputStream
 - 
- java.io.FilterInputStream
 - 
- org.apache.commons.io.input.buffer.CircularBufferInputStream
 - 
- org.apache.commons.io.input.buffer.PeekableInputStream
 
 
 
 
 
- 
- All Implemented Interfaces:
 java.io.Closeable,java.lang.AutoCloseable
public class PeekableInputStream extends CircularBufferInputStream
Implements a buffered input stream, which allows to peek into the buffers first bytes. This comes in handy when manually implementing scanners, lexers, parsers, and the like. 
- 
- 
Constructor Summary
Constructors Constructor Description PeekableInputStream(java.io.InputStream inputStream)Constructs a new instance, which filters the given input stream, and uses a reasonable default buffer size (IOUtils.DEFAULT_BUFFER_SIZE).PeekableInputStream(java.io.InputStream inputStream, int bufferSize)Constructs a new instance, which filters the given input stream, and uses the given buffer size. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanpeek(byte[] sourceBuffer)Returns whether the next bytes in the buffer are as given bysourceBuffer.booleanpeek(byte[] sourceBuffer, int offset, int length)Returns whether the next bytes in the buffer are as given bysourceBuffer, {code offset}, andlength.- 
Methods inherited from class org.apache.commons.io.input.buffer.CircularBufferInputStream
close, read, read 
- 
Methods inherited from class java.io.FilterInputStream
available, mark, markSupported, read, reset, skip 
 - 
 
 - 
 
- 
- 
Constructor Detail
- 
PeekableInputStream
public PeekableInputStream(java.io.InputStream inputStream)
Constructs a new instance, which filters the given input stream, and uses a reasonable default buffer size (IOUtils.DEFAULT_BUFFER_SIZE).- Parameters:
 inputStream- The input stream, which is being buffered.
 
- 
PeekableInputStream
public PeekableInputStream(java.io.InputStream inputStream, int bufferSize)Constructs a new instance, which filters the given input stream, and uses the given buffer size.- Parameters:
 inputStream- The input stream, which is being buffered.bufferSize- The size of theCircularByteBuffer, which is used internally.
 
 - 
 
- 
Method Detail
- 
peek
public boolean peek(byte[] sourceBuffer) throws java.io.IOExceptionReturns whether the next bytes in the buffer are as given bysourceBuffer. This is equivalent topeek(byte[], int, int)withoffset== 0, andlength==sourceBuffer.length- Parameters:
 sourceBuffer- the buffer to compare against- Returns:
 - true if the next bytes are as given
 - Throws:
 java.io.IOException- Refilling the buffer failed.
 
- 
peek
public boolean peek(byte[] sourceBuffer, int offset, int length) throws java.io.IOExceptionReturns whether the next bytes in the buffer are as given bysourceBuffer, {code offset}, andlength.- Parameters:
 sourceBuffer- the buffer to compare againstoffset- the start offsetlength- the length to compare- Returns:
 - true if the next bytes in the buffer are as given
 - Throws:
 java.io.IOException- if there is a problem calling fillBuffer()
 
 - 
 
 -