Package org.zeroturnaround.exec.stream
Class StreamPumper
java.lang.Object
org.zeroturnaround.exec.stream.StreamPumper
- All Implemented Interfaces:
Runnable
Copies all data from an input stream to an output stream.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean
close the output stream when exhaustedprivate static final int
the default size of the internal buffer for copying the streamsprivate boolean
was the end of the stream reachedprivate final boolean
flush the output stream after each writeprivate final InputStream
the input stream to pump fromprivate static final org.slf4j.Logger
private final OutputStream
the output stream to pmp intoprivate final int
the size of the internal buffer for copying the streams -
Constructor Summary
ConstructorsConstructorDescriptionStreamPumper
(InputStream is, OutputStream os) Create a new stream pumper.StreamPumper
(InputStream is, OutputStream os, boolean closeWhenExhausted) Create a new stream pumper.StreamPumper
(InputStream is, OutputStream os, boolean closeWhenExhausted, boolean flushImmediately) Create a new stream pumper.StreamPumper
(InputStream is, OutputStream os, boolean closeWhenExhausted, int size) Create a new stream pumper.StreamPumper
(InputStream is, OutputStream os, boolean closeWhenExhausted, int size, boolean flushImmediately) Create a new stream pumper. -
Method Summary
-
Field Details
-
log
private static final org.slf4j.Logger log -
DEFAULT_SIZE
private static final int DEFAULT_SIZEthe default size of the internal buffer for copying the streams- See Also:
-
is
the input stream to pump from -
os
the output stream to pmp into -
size
private final int sizethe size of the internal buffer for copying the streams -
finished
private boolean finishedwas the end of the stream reached -
closeWhenExhausted
private final boolean closeWhenExhaustedclose the output stream when exhausted -
flushImmediately
private final boolean flushImmediatelyflush the output stream after each write
-
-
Constructor Details
-
StreamPumper
public StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted, boolean flushImmediately) Create a new stream pumper.- Parameters:
is
- input stream to read data fromos
- output stream to write data to.closeWhenExhausted
- if true, the output stream will be closed when the input is exhausted.flushImmediately
- flush the output stream whenever data was written to it
-
StreamPumper
public StreamPumper(InputStream is, OutputStream os, boolean closeWhenExhausted, int size, boolean flushImmediately) Create a new stream pumper.- Parameters:
is
- input stream to read data fromos
- 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 streamsflushImmediately
- flush the output stream whenever data was written to it
-
StreamPumper
Create a new stream pumper.- Parameters:
is
- input stream to read data fromos
- output stream to write data to.closeWhenExhausted
- if true, the output stream will be closed when the input is exhausted.
-
StreamPumper
Create a new stream pumper.- Parameters:
is
- input stream to read data fromos
- 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
Create a new stream pumper.- Parameters:
is
- input stream to read data fromos
- output stream to write data to.
-
-
Method Details
-
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. -
isFinished
public boolean isFinished()Tells whether the end of the stream has been reached.- Returns:
- true is the stream has been exhausted.
-
waitFor
This method blocks until the stream pumper finishes.- Throws:
InterruptedException
- throws when the waiting is interrupted- See Also:
-