Package org.apache.commons.exec

# Class StreamPumper

java.lang.Object
org.apache.commons.exec.StreamPumper

All Implemented Interfaces:
  `Runnable`

public class StreamPumper extends Object implements Runnable
Copies all data from an input stream to an output stream.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `StreamPumper(InputStream is, OutputStream os)`
  Constructs a new stream pumper.
  `StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted)`
  Constructs a new stream pumper.
  `StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted, int size)`
  Constructs a new stream pumper.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `isFinished()`
  Tests whether the end of the stream has been reached.
  `void`
  `run()`
  Copies data from the input stream to the output stream.
  `void`
  `waitFor()`
  This method blocks until the stream pumper finishes.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### StreamPumper

    public StreamPumper(InputStream is, OutputStream os)
    Constructs a new stream pumper.
    Parameters:
      `is` - input stream to read data from.
      `os` - output stream to write data to.

  - ### StreamPumper

    public StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted)
    Constructs a new stream pumper.
    Parameters:
      `is` - input stream to read data from.
      `os` - output stream to write data to.
      `closeWhenExhausted` - if true, the output stream will be closed when the input is exhausted.

  - ### StreamPumper

    public StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted, int size)
    Constructs a new stream pumper.
    Parameters:
      `is` - input stream to read data from.
      `os` - output stream to write data to.
      `closeWhenExhausted` - if true, the output stream will be closed when the input is exhausted.
      `size` - the size of the internal buffer for copying the streams.

- ## Method Details

  - ### isFinished

    public boolean isFinished()
    Tests whether the end of the stream has been reached.
    Returns:
      true is the stream has been exhausted.

  - ### run

    public void run()
    Copies data from the input stream to the output stream. Terminates as soon as the input stream is closed or an error occurs.
    Specified by:
      `run` in interface `Runnable`

  - ### waitFor

    public void waitFor() throws InterruptedException
    This method blocks until the stream pumper finishes.
    Throws:
      `InterruptedException` - if any thread interrupted the current thread before or while the current thread was waiting for a notification.
    See Also:
      - `isFinished()`