Package de.pdark.decentxml
Class JoinedInputStream
- java.lang.Object
-
- java.io.InputStream
-
- de.pdark.decentxml.JoinedInputStream
-
- All Implemented Interfaces:
java.io.Closeable
,java.lang.AutoCloseable
public class JoinedInputStream extends java.io.InputStream
This class allows to join severalInputStream
's into one.Reading from an instance of
JoinedInputStream
will read each underlyingInputStream
until it is depleted and then continue with the next one.Depleted
InputStream
's will be closed as soon as possible.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.io.InputStream>
streams
-
Constructor Summary
Constructors Constructor Description JoinedInputStream()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description JoinedInputStream
add(java.io.InputStream in)
Add anotherInputStream
.void
close()
private void
popStream()
Remove the currentInputStream
and close it.int
read()
int
read(byte[] b, int off, int len)
-
-
-
Method Detail
-
add
public JoinedInputStream add(java.io.InputStream in)
Add anotherInputStream
.It is allowed to add more
InputStream
's even after reading has started.It is illegal to add more streams after the joined stream has been closed.
-
read
public int read() throws java.io.IOException
- Specified by:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
popStream
private void popStream() throws java.io.IOException
Remove the currentInputStream
and close it.- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException
- Overrides:
read
in classjava.io.InputStream
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classjava.io.InputStream
- Throws:
java.io.IOException
-
-