## org.apache.tools.ant.taskdefs
Class StreamPumper

    java.lang.Object
      org.apache.tools.ant.taskdefs.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.

Since:
  Ant 1.2

Constructor Summary
`StreamPumper(java.io.InputStream is, java.io.OutputStream os)` Create a new StreamPumper.
`StreamPumper(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted)` Create a new StreamPumper.

Method Summary
`int` `getBufferSize()` Get the size in bytes of the read buffer.
`java.lang.Exception` `getException()` Get the exception encountered, if any.
`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` `setBufferSize(int bufferSize)` Set the size in bytes of the read buffer.
`void` `waitFor()` This method blocks until the StreamPumper 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 StreamPumper.

  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)

  Create a new StreamPumper.

  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 StreamPumper finishes.

  Throws:
    `java.lang.InterruptedException` - if interrupted.
  See Also:
    `isFinished()`

### setBufferSize

    public void setBufferSize(int bufferSize)

  Set the size in bytes of the read buffer.

  Parameters:
    `bufferSize` - the buffer size to use.
  Throws:
    `java.lang.IllegalStateException` - if the StreamPumper is already running.

### getBufferSize

    public int getBufferSize()

  Get the size in bytes of the read buffer.

  Returns:
    the int size of the read buffer.

### getException

    public java.lang.Exception getException()

  Get the exception encountered, if any.

  Returns:
    the Exception encountered.