Class 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.
    Version:
    $Id: StreamPumper.java 1557263 2014-01-10 21:18:09Z ggregory $
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private boolean closeWhenExhausted
      close the output stream when exhausted
      private static int DEFAULT_SIZE
      the default size of the internal buffer for copying the streams
      private boolean finished
      was the end of the stream reached
      private java.io.InputStream is
      the input stream to pump from
      private java.io.OutputStream os
      the output stream to pmp into
      private int size
      the size of the internal buffer for copying the streams
    • Constructor Summary

      Constructors 
      Constructor 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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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
    • Field Detail

      • DEFAULT_SIZE

        private static final int DEFAULT_SIZE
        the default size of the internal buffer for copying the streams
        See Also:
        Constant Field Values
      • is

        private final java.io.InputStream is
        the input stream to pump from
      • os

        private final java.io.OutputStream os
        the output stream to pmp into
      • size

        private final int size
        the size of the internal buffer for copying the streams
      • finished

        private boolean finished
        was the end of the stream reached
      • closeWhenExhausted

        private final boolean closeWhenExhausted
        close the output stream when exhausted
    • 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()