org.eclipse.jgit.util.io
Class UnionInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.eclipse.jgit.util.io.UnionInputStream
All Implemented Interfaces:
Closeable

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
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
 void add(InputStream in)
          Add the given InputStream onto the end of the stream queue.
 int available()
           
 void close()
           
 boolean isEmpty()
          Returns true if there are no more InputStreams in the stream queue.
 int read()
           
 int read(byte[] b, int off, int len)
           
 long skip(long len)
           
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 true then all read methods will signal EOF by returning -1, until another InputStream has been pushed into the queue with add(InputStream).

Returns:
true if there are no more streams to read from.

read

public int read()
         throws IOException
Specified by:
read in class InputStream
Throws:
IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
Overrides:
read in class InputStream
Throws:
IOException

available

public int available()
              throws IOException
Overrides:
available in class InputStream
Throws:
IOException

skip

public long skip(long len)
          throws IOException
Overrides:
skip in class InputStream
Throws:
IOException

close

public void close()
           throws IOException
Specified by:
close in interface Closeable
Overrides:
close in class InputStream
Throws:
IOException


Copyright © 2012. All Rights Reserved.