Class MonitorInputStream
java.lang.Object
java.io.InputStream
java.io.FilterInputStream
java.io.BufferedInputStream
org.apache.commons.vfs2.util.MonitorInputStream
- All Implemented Interfaces:
Closeable, AutoCloseable
- Direct Known Subclasses:
DefaultFileContent.FileContentInputStream, FtpFileObject.FtpInputStream, MonitoredHttpResponseContentInputStream, SftpFileObject.SftpInputStream
An InputStream that provides buffering and end-of-stream monitoring.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicLongprivate static final intprivate final AtomicBooleanFields inherited from class FilterInputStream
in -
Constructor Summary
ConstructorsConstructorDescriptionConstructs a MonitorInputStream from the passed InputStreamMonitorInputStream(InputStream in, int bufferSize) Constructs a MonitorInputStream from the passed InputStream and with the specified buffer size -
Method Summary
Modifier and TypeMethodDescriptionintReturns 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 voidThis 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.Methods inherited from class BufferedInputStream
mark, markSupported, reset, skipMethods inherited from class FilterInputStream
read
-
Field Details
-
EOF_CHAR
private static final int EOF_CHAR- See Also:
-
atomicCount
-
finished
-
-
Constructor Details
-
MonitorInputStream
Constructs a MonitorInputStream from the passed InputStream- Parameters:
in- The input stream to wrap.
-
MonitorInputStream
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 Details
-
available
Returns 0 if the stream is at EOF, else the underlying inputStream will be queried.- Overrides:
availablein classBufferedInputStream- Returns:
- The number of bytes that are available.
- Throws:
IOException- if an error occurs.- Since:
- 2.0
-
close
Closes this input stream and releases any system resources associated with the stream.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classBufferedInputStream- Throws:
IOException- if an 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.
-
closeSuper
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:
IOException- if an IO error occurs.
-
onClose
Called after the stream has been closed. This implementation does nothing.- Throws:
IOException- if an error occurs.
-
read
Reads a character.- Overrides:
readin classBufferedInputStream- Returns:
- The character that was read as an integer.
- Throws:
IOException- if an IO error occurs.
-
read
Reads bytes from this input stream.- Overrides:
readin classBufferedInputStream- 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:
IOException- if an IO error occurs.
-