Package org.eclipse.jgit.util.io
Class UnionInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.eclipse.jgit.util.io.UnionInputStream
-
- All Implemented Interfaces:
Closeable,AutoCloseable
public class UnionInputStream extends InputStream
An InputStream which reads from one or more InputStreams.This stream may enter into an EOF state, returning -1 from any of the read methods, and then later successfully read additional bytes if a new InputStream is added after reaching EOF.
Currently this stream does not support the mark/reset APIs. If mark and later reset functionality is needed the caller should wrap this stream with a
BufferedInputStream.
-
-
Constructor Summary
Constructors Constructor Description UnionInputStream()Create an empty InputStream that is currently at EOF state.UnionInputStream(InputStream... inputStreams)Create an InputStream that is a union of the individual streams.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(InputStream in)Add the given InputStream onto the end of the stream queue.intavailable()voidclose()booleanisEmpty()Returns true if there are no more InputStreams in the stream queue.intread()intread(byte[] b, int off, int len)longskip(long count)-
Methods inherited from class java.io.InputStream
mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, transferTo
-
-
-
-
Constructor Detail
-
UnionInputStream
public UnionInputStream()
Create an empty InputStream that is currently at EOF state.
-
UnionInputStream
public UnionInputStream(InputStream... inputStreams)
Create an InputStream that is a union of the individual streams.As each stream reaches EOF, it will be automatically closed before bytes from the next stream are read.
- Parameters:
inputStreams- streams to be pushed onto this stream.
-
-
Method Detail
-
add
public void add(InputStream in)
Add the given InputStream onto the end of the stream queue.When the stream reaches EOF it will be automatically closed.
- Parameters:
in- the stream to add; must not be null.
-
isEmpty
public boolean isEmpty()
Returns true if there are no more InputStreams in the stream queue.If this method returns
truethen all read methods will signal EOF by returning -1, until another InputStream has been pushed into the queue withadd(InputStream).- Returns:
- true if there are no more streams to read from.
-
read
public int read() throws IOException- Specified by:
readin classInputStream- Throws:
IOException
-
read
public int read(byte[] b, int off, int len) throws IOException- Overrides:
readin classInputStream- Throws:
IOException
-
available
public int available() throws IOException- Overrides:
availablein classInputStream- Throws:
IOException
-
skip
public long skip(long count) throws IOException- Overrides:
skipin classInputStream- Throws:
IOException
-
close
public void close() throws IOException- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Overrides:
closein classInputStream- Throws:
IOException
-
-