Class NonBlockingBufferedInputStream

java.lang.Object
java.io.InputStream
org.apache.axis.transport.http.NonBlockingBufferedInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class NonBlockingBufferedInputStream extends InputStream
  • Constructor Details

    • NonBlockingBufferedInputStream

      public NonBlockingBufferedInputStream()
  • Method Details

    • setInputStream

      public void setInputStream(InputStream in)
      set the input stream to be used for subsequent reads
      Parameters:
      in - the InputStream
    • setContentLength

      public void setContentLength(int value)
      set the maximum number of bytes allowed to be read from this input stream.
      Parameters:
      value - the Content Length
    • read

      public int read() throws IOException
      Read a byte from the input stream, blocking if necessary. Internally the data is buffered for efficiency.
      Specified by:
      read in class InputStream
      Returns:
      the byte read
      Throws:
      IOException
    • read

      public int read(byte[] dest) throws IOException
      Read bytes from the input stream. This is guaranteed to return at least one byte or throw an exception. When possible, it will return more bytes, up to the length of the array, as long as doing so would not require waiting on bytes from the input stream.
      Overrides:
      read in class InputStream
      Parameters:
      dest - byte array to read into
      Returns:
      the number of bytes actually read
      Throws:
      IOException
    • read

      public int read(byte[] dest, int off, int len) throws IOException
      Read a specified number of bytes from the input stream. This is guaranteed to return at least one byte or throw an execption. When possible, it will return more bytes, up to the length specified, as long as doing so would not require waiting on bytes from the input stream.
      Overrides:
      read in class InputStream
      Parameters:
      dest - byte array to read into
      off - starting offset into the byte array
      len - maximum number of bytes to read
      Returns:
      the number of bytes actually read
      Throws:
      IOException
    • skip

      public int skip(int len) throws IOException
      skip over (and discard) a specified number of bytes in this input stream
      Parameters:
      len - the number of bytes to be skipped
      Returns:
      the action number of bytes skipped
      Throws:
      IOException
    • available

      public int available() throws IOException
      return the number of bytes available to be read without blocking
      Overrides:
      available in class InputStream
      Returns:
      the number of bytes
      Throws:
      IOException
    • close

      public void close() throws IOException
      disassociate from the underlying input stream
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
      Overrides:
      close in class InputStream
      Throws:
      IOException
    • peek

      public int peek() throws IOException
      Just like read except byte is not removed from the buffer. the data is buffered for efficiency. Was added to support multiline http headers. ;-)
      Returns:
      the byte read
      Throws:
      IOException