org.helyx.basics4me.io
Class FilterInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.helyx.basics4me.io.FilterInputStream
All Implemented Interfaces:
java.io.Closeable
Direct Known Subclasses:
BufferedInputStream

public class FilterInputStream
extends java.io.InputStream

FilteredInputStream is a class which takes an input stream and filters the input in some way. The filtered view may be a buffered view or one which uncompresses data before returning bytes read. FilterInputStreams are meant for byte streams.


Field Summary
protected  java.io.InputStream in
          The target InputStream which is being filtered.
 
Constructor Summary
protected FilterInputStream(java.io.InputStream in)
          Constructs a new FilterInputStream on the InputStream in.
 
Method Summary
 int available()
          Answers a int representing the number of bytes that are available before this FilterInputStream will block.
 void close()
          Close this FilterInputStream.
 void mark(int readlimit)
          Set a Mark position in this FilterInputStream.
 boolean markSupported()
          Answers a boolean indicating whether or not this FilterInputStream supports mark() and reset().
 int read()
          Reads a single byte from this FilterInputStream and returns the result as an int.
 int read(byte[] buffer)
          Reads bytes from this FilterInputStream and stores them in byte array buffer.
 int read(byte[] buffer, int offset, int count)
          Reads at most count bytes from this FilterInputStream and stores them in byte array buffer starting at offset.
 void reset()
          Reset this FilterInputStream to the last marked location.
 long skip(long count)
          Skips count number of bytes in this InputStream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

in

protected java.io.InputStream in
The target InputStream which is being filtered.

Constructor Detail

FilterInputStream

protected FilterInputStream(java.io.InputStream in)
Constructs a new FilterInputStream on the InputStream in. All reads are now filtered through this stream.

Parameters:
in - The non-null InputStream to filter reads on.
Method Detail

available

public int available()
              throws java.io.IOException
Answers a int representing the number of bytes that are available before this FilterInputStream will block. This method returns the number of bytes available in the target stream.

Overrides:
available in class java.io.InputStream
Returns:
the number of bytes available before blocking.
Throws:
java.io.IOException - If an error occurs in this stream.

close

public void close()
           throws java.io.IOException
Close this FilterInputStream. This implementation closes the target stream.

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException - If an error occurs attempting to close this stream.

mark

public void mark(int readlimit)
Set a Mark position in this FilterInputStream. The parameter readLimit indicates how many bytes can be read before a mark is invalidated. Sending reset() will reposition the Stream back to the marked position provided readLimit has not been surpassed.

This implementation sets a mark in the target stream.

Overrides:
mark in class java.io.InputStream
Parameters:
readlimit - the number of bytes to be able to read before invalidating the mark.

markSupported

public boolean markSupported()
Answers a boolean indicating whether or not this FilterInputStream supports mark() and reset(). This implementation answers whether or not the target stream supports marking.

Overrides:
markSupported in class java.io.InputStream
Returns:
true if mark() and reset() are supported, false otherwise.

read

public int read()
         throws java.io.IOException
Reads a single byte from this FilterInputStream and returns the result as an int. The low-order byte is returned or -1 of the end of stream was encountered. This implementation returns a byte from the target stream.

Specified by:
read in class java.io.InputStream
Returns:
the byte read or -1 if end of stream.
Throws:
java.io.IOException - If the stream is already closed or another IOException occurs.

read

public int read(byte[] buffer)
         throws java.io.IOException
Reads bytes from this FilterInputStream and stores them in byte array buffer. Answer the number of bytes actually read or -1 if no bytes were read and end of stream was encountered. This implementation reads bytes from the target stream.

Overrides:
read in class java.io.InputStream
Parameters:
buffer - the byte array in which to store the read bytes.
Returns:
the number of bytes actually read or -1 if end of stream.
Throws:
java.io.IOException - If the stream is already closed or another IOException occurs.

read

public int read(byte[] buffer,
                int offset,
                int count)
         throws java.io.IOException
Reads at most count bytes from this FilterInputStream and stores them in byte array buffer starting at offset. Answer the number of bytes actually read or -1 if no bytes were read and end of stream was encountered. This implementation reads bytes from the target stream.

Overrides:
read in class java.io.InputStream
Parameters:
buffer - the byte array in which to store the read bytes.
offset - the offset in buffer to store the read bytes.
count - the maximum number of bytes to store in buffer.
Returns:
the number of bytes actually read or -1 if end of stream.
Throws:
java.io.IOException - If the stream is already closed or another IOException occurs.

reset

public void reset()
           throws java.io.IOException
Reset this FilterInputStream to the last marked location. If the readlimit has been passed or no mark has been set, throw IOException. This implementation resets the target stream.

Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException - If the stream is already closed or another IOException occurs.

skip

public long skip(long count)
          throws java.io.IOException
Skips count number of bytes in this InputStream. Subsequent read()'s will not return these bytes unless reset() is used. This implementation skips count number of bytes in the target stream.

Overrides:
skip in class java.io.InputStream
Parameters:
count - the number of bytes to skip.
Returns:
the number of bytes actually skipped.
Throws:
java.io.IOException - If the stream is already closed or another IOException occurs.


Copyright © 2008-2010 Helyx.org. All Rights Reserved.