uk.ac.starlink.util
Class HeadBufferInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by uk.ac.starlink.util.HeadBufferInputStream
All Implemented Interfaces:
Closeable

public class HeadBufferInputStream
extends FilterInputStream

Filter input stream that records the first few bytes read from its base stream for later examination.

Since:
5 Aug 2015

Field Summary
 
Fields inherited from class java.io.FilterInputStream
in
 
Constructor Summary
HeadBufferInputStream(InputStream in, int headSize)
          Constructor.
 
Method Summary
 byte[] getHeadBuffer()
          Returns the actual buffer used for accumulating the first few bytes in the stream.
 int 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)
           
 
Methods inherited from class java.io.FilterInputStream
available, close
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HeadBufferInputStream

public HeadBufferInputStream(InputStream in,
                             int headSize)
Constructor.

Parameters:
in - base input stream
headSize - size of head buffer
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 int getReadCount()
Returns the total number of bytes so far read from the base stream.

Returns:
byte read count

read

public int read()
         throws IOException
Overrides:
read in class FilterInputStream
Throws:
IOException

read

public int read(byte[] b)
         throws IOException
Overrides:
read in class FilterInputStream
Throws:
IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
Overrides:
read in class FilterInputStream
Throws:
IOException

skip

public long skip(long n)
          throws IOException
Overrides:
skip in class FilterInputStream
Throws:
IOException

markSupported

public boolean markSupported()
Mark/reset is not supported.

Overrides:
markSupported in class FilterInputStream

reset

public void reset()
           throws IOException
Overrides:
reset in class FilterInputStream
Throws:
IOException

mark

public void mark(int readlimit)
Overrides:
mark in class FilterInputStream

Copyright © 2004 CLRC: Central Laboratory of the Research Councils. All rights reserved.