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()private java.io.InputStreamhead()booleanisEmpty()Returns true if there are no more InputStreams in the stream queue.private voidpop()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
-
head
private java.io.InputStream head()
-
pop
private void pop() throws java.io.IOException- Throws:
java.io.IOException
-
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
-
-