Package 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.RunnableCopies all data from an input stream to an output stream.- Since:
- Ant 1.2
 
- 
- 
Constructor SummaryConstructors Constructor Description 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.StreamPumper(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted, boolean useAvailable)Create a new StreamPumper.
 - 
Method SummaryModifier and Type Method Description intgetBufferSize()Get the size in bytes of the read buffer.java.lang.ExceptiongetException()Get the exception encountered, if any.booleanisFinished()Tells whether the end of the stream has been reached.voidrun()Copies data from the input stream to the output stream.voidsetBufferSize(int bufferSize)Set the size in bytes of the read buffer.voidwaitFor()This method blocks until the StreamPumper finishes.
 
- 
- 
- 
Constructor Detail- 
StreamPumperpublic 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.
 
 - 
StreamPumperpublic StreamPumper(java.io.InputStream is, java.io.OutputStream os, boolean closeWhenExhausted, boolean useAvailable)Create a new StreamPumper.Note: If you set useAvailable to true, you must explicitly invoke stopor interrupt the corresponding Thread when you are done or the run method will never finish on some JVMs (namely those where available returns 0 on a closed stream). Setting it to true may also impact performance negatively. This flag should only be set to true if you intend to stop the pumper before the input stream gets closed.- 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.
- useAvailable- whether the pumper should use- availableto determine whether input is ready, thus trying to emulate non-blocking behavior.
- Since:
- Ant 1.8.0
 
 - 
StreamPumperpublic 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- 
runpublic 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:
- runin interface- java.lang.Runnable
 
 - 
isFinishedpublic boolean isFinished() Tells whether the end of the stream has been reached.- Returns:
- true is the stream has been exhausted.
 
 - 
waitForpublic void waitFor() throws java.lang.InterruptedExceptionThis method blocks until the StreamPumper finishes.- Throws:
- java.lang.InterruptedException- if interrupted.
- See Also:
- isFinished()
 
 - 
setBufferSizepublic 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.
 
 - 
getBufferSizepublic int getBufferSize() Get the size in bytes of the read buffer.- Returns:
- the int size of the read buffer.
 
 - 
getExceptionpublic java.lang.Exception getException() Get the exception encountered, if any.- Returns:
- the Exception encountered.
 
 
- 
 
-