de.vxart.io
Class ThrottledInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by java.io.FilterInputStream
          extended by de.vxart.io.ThrottledInputStream
All Implemented Interfaces:
java.io.Closeable

public class ThrottledInputStream
extends java.io.FilterInputStream

Provides a throttled InputStream which artificially slows down data throughput by sleeping in the current thread.

Author:
Philipp Reichart, philipp.reichart@vxart.de

Constructor Summary
ThrottledInputStream(java.io.InputStream in, long bytesPerSecond)
          Wraps the given InputStream while throttling the reading speed to the specified number of bytes per second.
 
Method Summary
 int read()
           
 int read(byte[] b)
           
 int read(byte[] b, int off, int len)
           
 long skip(long n)
           
 
Methods inherited from class java.io.FilterInputStream
available, close, mark, markSupported, reset
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ThrottledInputStream

public ThrottledInputStream(java.io.InputStream in,
                            long bytesPerSecond)
Wraps the given InputStream while throttling the reading speed to the specified number of bytes per second. This class might cause timeouts on network connections when too much throttling is used.

Parameters:
in - the stream to throttle reading from
bytesPerSecond - the maximum speed in bytes per second
Method Detail

read

public int read()
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b,
                int off,
                int len)
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

read

public int read(byte[] b)
         throws java.io.IOException
Overrides:
read in class java.io.FilterInputStream
Throws:
java.io.IOException

skip

public long skip(long n)
          throws java.io.IOException
Overrides:
skip in class java.io.FilterInputStream
Throws:
java.io.IOException