Class NonBlockingBufferedInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class NonBlockingBufferedInputStream
    extends java.io.InputStream
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      return the number of bytes available to be read without blocking
      void close()
      disassociate from the underlying input stream
      int peek()
      Just like read except byte is not removed from the buffer.
      int read()
      Read a byte from the input stream, blocking if necessary.
      int read​(byte[] dest)
      Read bytes from the input stream.
      int read​(byte[] dest, int off, int len)
      Read a specified number of bytes from the input stream.
      void setContentLength​(int value)
      set the maximum number of bytes allowed to be read from this input stream.
      void setInputStream​(java.io.InputStream in)
      set the input stream to be used for subsequent reads
      int skip​(int len)
      skip over (and discard) a specified number of bytes in this input stream
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • NonBlockingBufferedInputStream

        public NonBlockingBufferedInputStream()
    • Method Detail

      • setInputStream

        public void setInputStream​(java.io.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 java.io.IOException
        Read a byte from the input stream, blocking if necessary. Internally the data is buffered for efficiency.
        Specified by:
        read in class java.io.InputStream
        Returns:
        the byte read
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] dest)
                 throws java.io.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 java.io.InputStream
        Parameters:
        dest - byte array to read into
        Returns:
        the number of bytes actually read
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] dest,
                        int off,
                        int len)
                 throws java.io.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 java.io.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:
        java.io.IOException
      • skip

        public int skip​(int len)
                 throws java.io.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:
        java.io.IOException
      • available

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

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

        public int peek()
                 throws java.io.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:
        java.io.IOException