| java.lang.Object java.io.InputStream com.Ostermiller.util.ConcatInputStream
ConcatInputStream | public class ConcatInputStream extends InputStream (Code) | | An input stream which reads sequentially from multiple sources.
More information about this class is available from ostermiller.org.
author: Stephen Ostermiller http://ostermiller.org/contact.pl?regarding=Java+Utilities since: ostermillerutils 1.04.00 |
Method Summary | |
public void | addInputStream(InputStream in) Add the given inputStream to the queue of inputStreams from which to
concatenate data. | public void | addInputStreams(InputStream[] in) Add the given inputStream to the queue of inputStreams from which to
concatenate data. | public int | available() Returns the number of bytes that can be read (or skipped over) from this input
stream without blocking by the next caller of a method for this input stream. | public void | close() Closes this input stream and releases any system resources associated with the stream. | public void | lastInputStreamAdded() Causes the addInputStream method to throw IllegalStateException
and read() methods to return -1 (end of stream)
when there is no more available data. | public void | mark(int readlimit) | public boolean | markSupported() Does not support mark. | public int | read() Reads the next byte of data from the underlying streams. | public int | read(byte[] b) Reads some number of bytes from the underlying streams and stores them into
the buffer array b. | public int | read(byte[] b, int off, int len) Reads up to length bytes of data from the underlying streams into an array of bytes.
An attempt is made to read as many as length bytes, but a smaller number may be read,
possibly zero. | public void | reset() Reset not supported. | public long | skip(long n) Skips over and discards n bytes of data from this input stream. |
ConcatInputStream | public ConcatInputStream()(Code) | | Create a new input stream that can dynamically accept new sources.
New sources should be added using the addInputStream() method.
When all sources have been added the lastInputStreamAdded() should
be called so that read methods can return -1 (end of stream).
Adding new sources may by interleaved with read calls.
since: ostermillerutils 1.04.01 |
ConcatInputStream | public ConcatInputStream(InputStream in)(Code) | | Create a new InputStream with one source.
Parameters: in - InputStream to use as a source. throws: NullPointerException - if in is null since: ostermillerutils 1.04.00 |
ConcatInputStream | public ConcatInputStream(InputStream in1, InputStream in2)(Code) | | Create a new InputStream with two sources.
Parameters: in1 - first InputStream to use as a source. Parameters: in2 - second InputStream to use as a source. throws: NullPointerException - if either source is null. since: ostermillerutils 1.04.00 |
ConcatInputStream | public ConcatInputStream(InputStream[] in)(Code) | | Create a new InputStream with an arbitrary number of sources.
Parameters: in - InputStreams to use as a sources. throws: NullPointerException - if the input array on any element is null. since: ostermillerutils 1.04.00 |
addInputStream | public void addInputStream(InputStream in)(Code) | | Add the given inputStream to the queue of inputStreams from which to
concatenate data.
Parameters: in - InputStream to add to the concatenation. throws: IllegalStateException - if more inputStreams can't be added because lastInputStreamAdded() has been called, close() has been called, or a constructor with inputStream parameters was used. since: ostermillerutils 1.04.01 |
addInputStreams | public void addInputStreams(InputStream[] in)(Code) | | Add the given inputStream to the queue of inputStreams from which to
concatenate data.
Parameters: in - InputStream to add to the concatenation. throws: IllegalStateException - if more inputStreams can't be added because lastInputStreamAdded() has been called, close() has been called, or a constructor with inputStream parameters was used. throws: NullPointerException - the array of inputStreams, or any of the contents is null. since: ostermillerutils 1.04.01 |
available | public int available() throws IOException(Code) | | Returns the number of bytes that can be read (or skipped over) from this input
stream without blocking by the next caller of a method for this input stream.
The next caller might be the same thread or or another thread.
throws: IOException - If an I/O error occurs since: ostermillerutils 1.04.00 |
close | public void close() throws IOException(Code) | | Closes this input stream and releases any system resources associated with the stream.
since: ostermillerutils 1.04.00 |
lastInputStreamAdded | public void lastInputStreamAdded()(Code) | | Causes the addInputStream method to throw IllegalStateException
and read() methods to return -1 (end of stream)
when there is no more available data.
Calling this method when this class is no longer accepting
more inputStreams has no effect.
since: ostermillerutils 1.04.01 |
mark | public void mark(int readlimit)(Code) | | Mark not supported
since: ostermillerutils 1.04.00 |
markSupported | public boolean markSupported()(Code) | | Does not support mark.
false since: ostermillerutils 1.04.00 |
read | public int read() throws IOException(Code) | | Reads the next byte of data from the underlying streams. The value byte is
returned as an int in the range 0 to 255. If no byte is available because
the end of the stream has been reached, the value -1 is returned. This method
blocks until input data is available, the end of the stream is detected, or
an exception is thrown.
If this class in not done accepting inputstreams and the end of the last known
stream is reached, this method will block forever unless another thread
adds an inputstream or interrupts.
the next byte of data, or -1 if the end of the stream is reached. throws: IOException - if an I/O error occurs. |
read | public int read(byte[] b) throws IOException(Code) | | Reads some number of bytes from the underlying streams and stores them into
the buffer array b. The number of bytes actually read is returned as an
integer. This method blocks until input data is available, end of file is
detected, or an exception is thrown.
If the length of b is zero,
then no bytes are read and 0 is returned; otherwise, there is an attempt
to read at least one byte.
The read(b) method for class InputStream has the same effect as:
read(b, 0, b.length)
If this class in not done accepting inputstreams and the end of the last known
stream is reached, this method will block forever unless another thread
adds an inputstream or interrupts.
Parameters: b - - Destination buffer The number of bytes read, or -1 if the end of the stream has been reached throws: IOException - - If an I/O error occurs throws: NullPointerException - - If b is null. since: ostermillerutils 1.04.00 |
read | public int read(byte[] b, int off, int len) throws IOException(Code) | | Reads up to length bytes of data from the underlying streams into an array of bytes.
An attempt is made to read as many as length bytes, but a smaller number may be read,
possibly zero. The number of bytes actually read is returned as an integer.
If length is zero,
then no bytes are read and 0 is returned; otherwise, there is an attempt
to read at least one byte.
This method blocks until input data is available
If this class in not done accepting inputstreams and the end of the last known
stream is reached, this method will block forever unless another thread
adds an inputstream or interrupts.
Parameters: b - Destination buffer Parameters: off - Offset at which to start storing bytes Parameters: len - Maximum number of bytes to read The number of bytes read, or -1 if the end of the stream has been reached throws: IOException - - If an I/O error occurs throws: NullPointerException - - If b is null. throws: IndexOutOfBoundsException - - if length or offset are not possible. |
reset | public void reset() throws IOException(Code) | | Reset not supported.
throws: IOException - because reset is not supported. since: ostermillerutils 1.04.00 |
skip | public long skip(long n) throws IOException(Code) | | Skips over and discards n bytes of data from this input stream. The skip method
may, for a variety of reasons, end up skipping over some smaller number of bytes,
possibly 0. This may result from any of a number of conditions; reaching end of
file before n bytes have been skipped is only one possibility. The actual number
of bytes skipped is returned. If n is negative, no bytes are skipped.
If this class in not done accepting inputstreams and the end of the last known
stream is reached, this method will block forever unless another thread
adds an inputstream or interrupts.
Parameters: n - he number of characters to skip The number of characters actually skipped throws: IOException - If an I/O error occurs since: ostermillerutils 1.04.00 |
|
|