public class ObservableInputStream extends ProxyInputStream
ObservableInputStream allows, that an InputStream may be consumed by other receivers, apart from the
thread, which is reading it. The other consumers are implemented as instances of ObservableInputStream.Observer.
A typical application may be the generation of a MessageDigest on the fly.
Note: The ObservableInputStream is not thread safe, as instances of InputStream usually
aren't. If you must access the stream from multiple threads, then synchronization, locking, or a similar means must
be used.
MessageDigestInputStream| Modifier and Type | Class and Description |
|---|---|
static class |
ObservableInputStream.AbstractBuilder<T extends ObservableInputStream.AbstractBuilder<T>>
For subclassing builders from
BoundedInputStream subclassses. |
static class |
ObservableInputStream.Builder
Builds instances of
ObservableInputStream. |
static class |
ObservableInputStream.Observer
Abstracts observer callback for
ObservableInputStreams. |
| Constructor and Description |
|---|
ObservableInputStream(java.io.InputStream inputStream)
Constructs a new ObservableInputStream for the given InputStream.
|
ObservableInputStream(java.io.InputStream inputStream,
ObservableInputStream.Observer... observers)
Constructs a new ObservableInputStream for the given InputStream.
|
| Modifier and Type | Method and Description |
|---|---|
void |
add(ObservableInputStream.Observer observer)
Adds an Observer.
|
void |
close()
Invokes the delegate's
InputStream.close() method. |
void |
consume()
Reads all data from the underlying
InputStream, while notifying the observers. |
java.util.List<ObservableInputStream.Observer> |
getObservers()
Gets a copy of currently registered observers.
|
int |
read()
Invokes the delegate's
InputStream.read() method unless the stream is closed. |
int |
read(byte[] buffer)
Invokes the delegate's
InputStream.read(byte[]) method. |
int |
read(byte[] buffer,
int offset,
int length)
Invokes the delegate's
InputStream.read(byte[], int, int) method. |
void |
remove(ObservableInputStream.Observer observer)
Removes an Observer.
|
void |
removeAllObservers()
Removes all Observers.
|
available, mark, markSupported, reset, setReference, skip, unwrappublic ObservableInputStream(java.io.InputStream inputStream)
inputStream - the input stream to observe.public ObservableInputStream(java.io.InputStream inputStream,
ObservableInputStream.Observer... observers)
inputStream - the input stream to observe.observers - List of observer callbacks.public void add(ObservableInputStream.Observer observer)
observer - the observer to add.public void close()
throws java.io.IOException
ProxyInputStreamInputStream.close() method.close in interface java.io.Closeableclose in interface java.lang.AutoCloseableclose in class ProxyInputStreamjava.io.IOException - if an I/O error occurs.public void consume()
throws java.io.IOException
InputStream, while notifying the observers.java.io.IOException - The underlying InputStream, or either of the observers has thrown an exception.public java.util.List<ObservableInputStream.Observer> getObservers()
public int read()
throws java.io.IOException
ProxyInputStreamInputStream.read() method unless the stream is closed.read in class ProxyInputStreamEOF if we reached the end of stream.java.io.IOException - if an I/O error occurs.public int read(byte[] buffer)
throws java.io.IOException
ProxyInputStreamInputStream.read(byte[]) method.read in class ProxyInputStreambuffer - the buffer to read the bytes into.EOF if we reached the end of stream.java.io.IOException - public int read(byte[] buffer,
int offset,
int length)
throws java.io.IOException
ProxyInputStreamInputStream.read(byte[], int, int) method.read in class ProxyInputStreambuffer - the buffer to read the bytes into.offset - The start offset.length - The number of bytes to read.EOF if we reached the end of stream.java.io.IOException - public void remove(ObservableInputStream.Observer observer)
observer - the observer to removepublic void removeAllObservers()
Copyright © 2010 - 2025 Adobe. All Rights Reserved