public abstract class ProxyInputStream extends FilterInputStream
It is an alternative base class to FilterInputStream to increase reusability, because FilterInputStream changes the methods being called, such as read(byte[]) to read(byte[], int, int).
See the protected methods for ways in which a subclass can easily decorate a stream with custom pre-, post- or error processing functionality.
in
Constructor and Description |
---|
ProxyInputStream(InputStream proxy)
Constructs a new ProxyInputStream.
|
Modifier and Type | Method and Description |
---|---|
protected void |
afterRead(int n)
Invoked by the read methods after the proxied call has returned
successfully.
|
int |
available()
Invokes the delegate's
available() method. |
protected void |
beforeRead(int n)
Invoked by the read methods before the call is proxied.
|
void |
close()
Invokes the delegate's
close() method. |
protected void |
handleIOException(IOException e)
Handle any IOExceptions thrown.
|
void |
mark(int readlimit)
Invokes the delegate's
mark(int) method. |
boolean |
markSupported()
Invokes the delegate's
markSupported() method. |
int |
read()
Invokes the delegate's
read() method. |
int |
read(byte[] bts)
Invokes the delegate's
read(byte[]) method. |
int |
read(byte[] bts,
int off,
int len)
Invokes the delegate's
read(byte[], int, int) method. |
void |
reset()
Invokes the delegate's
reset() method. |
long |
skip(long ln)
Invokes the delegate's
skip(long) method. |
public ProxyInputStream(InputStream proxy)
proxy
- the InputStream to delegate topublic int read() throws IOException
read()
method.read
in class FilterInputStream
IOException
- if an I/O error occurspublic int read(byte[] bts) throws IOException
read(byte[])
method.read
in class FilterInputStream
bts
- the buffer to read the bytes intoIOException
- if an I/O error occurspublic int read(byte[] bts, int off, int len) throws IOException
read(byte[], int, int)
method.read
in class FilterInputStream
bts
- the buffer to read the bytes intooff
- The start offsetlen
- The number of bytes to readIOException
- if an I/O error occurspublic long skip(long ln) throws IOException
skip(long)
method.skip
in class FilterInputStream
ln
- the number of bytes to skipIOException
- if an I/O error occurspublic int available() throws IOException
available()
method.available
in class FilterInputStream
IOException
- if an I/O error occurspublic void close() throws IOException
close()
method.close
in interface Closeable
close
in interface AutoCloseable
close
in class FilterInputStream
IOException
- if an I/O error occurspublic void mark(int readlimit)
mark(int)
method.mark
in class FilterInputStream
readlimit
- read ahead limitpublic void reset() throws IOException
reset()
method.reset
in class FilterInputStream
IOException
- if an I/O error occurspublic boolean markSupported()
markSupported()
method.markSupported
in class FilterInputStream
protected void beforeRead(int n) throws IOException
read()
method, buffer length for read(byte[])
, etc.) is given as
an argument.
Subclasses can override this method to add common pre-processing functionality without having to override all the read methods. The default implementation does nothing.
Note this method is not called from skip(long)
or
reset()
. You need to explicitly override those methods if
you want to add pre-processing steps also to them.
n
- number of bytes that the caller asked to be readIOException
- if the pre-processing failsprotected void afterRead(int n) throws IOException
Subclasses can override this method to add common post-processing functionality without having to override all the read methods. The default implementation does nothing.
Note this method is not called from skip(long)
or
reset()
. You need to explicitly override those methods if
you want to add post-processing steps also to them.
n
- number of bytes read, or -1 if the end of stream was reachedIOException
- if the post-processing failsprotected void handleIOException(IOException e) throws IOException
This method provides a point to implement custom exception handling. The default behaviour is to re-throw the exception.
e
- The IOException thrownIOException
- if an I/O error occursCopyright © 2007–2022 The Apache Software Foundation. All rights reserved.