Package org.eclipse.jgit.util.io
Class UnionInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.eclipse.jgit.util.io.UnionInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class UnionInputStream extends java.io.InputStreamAn 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(java.io.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(java.io.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)
-
-
-
Constructor Detail
-
UnionInputStream
public UnionInputStream()
Create an empty InputStream that is currently at EOF state.
-
UnionInputStream
public UnionInputStream(java.io.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(java.io.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 java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
available
public int available() throws java.io.IOException- Overrides:
availablein classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long count) throws java.io.IOException- Overrides:
skipin classjava.io.InputStream- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classjava.io.InputStream- Throws:
java.io.IOException
-
-