Package org.apache.commons.vfs2.util
Class MonitorInputStream
- java.lang.Object
-
- java.io.InputStream
-
- java.io.FilterInputStream
-
- java.io.BufferedInputStream
-
- org.apache.commons.vfs2.util.MonitorInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class MonitorInputStream extends java.io.BufferedInputStream
An InputStream that provides buffering and end-of-stream monitoring.
-
-
Constructor Summary
Constructors Constructor Description MonitorInputStream(java.io.InputStream in)Constructs a MonitorInputStream from the passed InputStream.MonitorInputStream(java.io.InputStream in, int bufferSize)Constructs a MonitorInputStream from the passed InputStream and with the specified buffer size.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intavailable()Returns 0 if the stream is at EOF, else the underlying inputStream will be queried.voidclose()Closes this input stream and releases any system resources associated with the stream.protected voidcloseSuper()This method exists in order to allow overriding whether to actually close the underlying stream (VFS-805).longgetCount()Gets the number of bytes read by this input stream.protected voidonClose()Called after the stream has been closed.intread()Reads a character.intread(byte[] buffer, int offset, int length)Reads bytes from this input stream.
-
-
-
Constructor Detail
-
MonitorInputStream
public MonitorInputStream(java.io.InputStream in)
Constructs a MonitorInputStream from the passed InputStream.- Parameters:
in- The input stream to wrap.
-
MonitorInputStream
public MonitorInputStream(java.io.InputStream in, int bufferSize)
Constructs a MonitorInputStream from the passed InputStream and with the specified buffer size.- Parameters:
in- The input stream to wrap.bufferSize- The buffer size to use.- Since:
- 2.4
-
-
Method Detail
-
available
public int available() throws java.io.IOException
Returns 0 if the stream is at EOF, else the underlying inputStream will be queried.- Overrides:
availablein classjava.io.BufferedInputStream- Returns:
- The number of bytes that are available.
- Throws:
java.io.IOException- if an error occurs.- Since:
- 2.0
-
close
public void close() throws java.io.IOException
Closes this input stream and releases any system resources associated with the stream.- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.BufferedInputStream- Throws:
java.io.IOException- if an error occurs.
-
closeSuper
protected void closeSuper() throws java.io.IOException
This method exists in order to allow overriding whether to actually close the underlying stream (VFS-805). There are cases where closing that stream will consume any amount of remaining data. In such cases closing a different entity instead (such as an HttpResponse) may be more appropriate.- Throws:
java.io.IOException- if an IO error occurs.
-
getCount
public long getCount()
Gets the number of bytes read by this input stream.- Returns:
- The number of bytes read by this input stream.
-
onClose
protected void onClose() throws java.io.IOException
Called after the stream has been closed. This implementation does nothing.- Throws:
java.io.IOException- if an error occurs.
-
read
public int read() throws java.io.IOException
Reads a character.- Overrides:
readin classjava.io.BufferedInputStream- Returns:
- The character that was read as an integer.
- Throws:
java.io.IOException- if an IO error occurs.
-
read
public int read(byte[] buffer, int offset, int length) throws java.io.IOException
Reads bytes from this input stream.- Overrides:
readin classjava.io.BufferedInputStream- Parameters:
buffer- A byte array in which to place the characters read.offset- The offset at which to start reading.length- The maximum number of bytes to read.- Returns:
- The number of bytes read.
- Throws:
java.io.IOException- if an IO error occurs.
-
-