net.sf.fmj.media.codec
Class InputStreamReader

java.lang.Object
  extended by java.io.InputStream
      extended by net.sf.fmj.media.codec.InputStreamReader
All Implemented Interfaces:
java.io.Closeable

public class InputStreamReader
extends java.io.InputStream

Class to wrap an InputStream and do reads in a background thread, so that read never blocks. Used for badly behaving input streams where available() is not working right or useless.

Author:
Ken Larson

Constructor Summary
InputStreamReader(java.io.InputStream is, int bufferSize)
           
 
Method Summary
 int available()
           
 void close()
           
 int read()
           
 int read(byte[] b, int off, int len)
           
 void startReaderThread()
           
 
Methods inherited from class java.io.InputStream
mark, markSupported, read, reset, skip
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InputStreamReader

public InputStreamReader(java.io.InputStream is,
                         int bufferSize)
Method Detail

startReaderThread

public void startReaderThread()

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

read

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