StreamPumper
Date: 2017-01-22

org.apache.commons.exec

## Class StreamPumper

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

- All Implemented Interfaces:
    java.lang.Runnable

      public class StreamPumper
      extends java.lang.Object
      implements java.lang.Runnable

  Copies all data from an input stream to an output stream.

- - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isFinished()` Tells 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 Detail

    - #### StreamPumper

          public StreamPumper(java.io.InputStream is,
                      java.io.OutputStream os,
                      boolean closeWhenExhausted)

      Create 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(java.io.InputStream is,
                      java.io.OutputStream os,
                      boolean closeWhenExhausted,
                      int size)

      Create 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

    - #### StreamPumper

          public StreamPumper(java.io.InputStream is,
                      java.io.OutputStream os)

      Create a new stream pumper.
      Parameters:
        `is` - input stream to read data from
        `os` - output stream to write data to.

  - ### Method Detail

    - #### 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 `java.lang.Runnable`

    - #### isFinished

          public boolean isFinished()

      Tells whether the end of the stream has been reached.
      Returns:
        true is the stream has been exhausted.

    - #### waitFor

          public void waitFor()
                       throws java.lang.InterruptedException

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