Package uk.ac.starlink.util
Class HeadBufferInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- uk.ac.starlink.util.HeadBufferInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class HeadBufferInputStream extends java.io.FilterInputStream
Filter input stream that records the first few bytes read from its base stream for later examination.- Since:
- 5 Aug 2015
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description HeadBufferInputStream(java.io.InputStream in, int headSize)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]
getHeadBuffer()
Returns the actual buffer used for accumulating the first few bytes in the stream.long
getReadCount()
Returns the total number of bytes so far read from the base stream.void
mark(int readlimit)
boolean
markSupported()
Mark/reset is not supported.int
read()
int
read(byte[] b)
int
read(byte[] b, int off, int len)
void
reset()
long
skip(long n)
-
-
-
Method Detail
-
getHeadBuffer
public byte[] getHeadBuffer()
Returns the actual buffer used for accumulating the first few bytes in the stream. If the read count is lower than the size of this buffer, not all the buffer has been filled.- Returns:
- buffer, same length as size supplied at construction time
-
getReadCount
public long getReadCount()
Returns the total number of bytes so far read from the base stream.- Returns:
- byte read count
-
read
public int read() throws java.io.IOException
- Overrides:
read
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b) throws java.io.IOException
- Overrides:
read
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException
- Overrides:
skip
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
markSupported
public boolean markSupported()
Mark/reset is not supported.- Overrides:
markSupported
in classjava.io.FilterInputStream
-
reset
public void reset() throws java.io.IOException
- Overrides:
reset
in classjava.io.FilterInputStream
- Throws:
java.io.IOException
-
mark
public void mark(int readlimit)
- Overrides:
mark
in classjava.io.FilterInputStream
-
-