Package ej.hoka.io

Class IdentityMessageBodyInputStream

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

    public class IdentityMessageBodyInputStream
    extends java.io.InputStream
    Identity input stream. Wraps an InputStream and all of the operations on IdentityMessageBodyInputStream are delegated to this underlying InputStream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()
      Returns the number of bytes that can be read (or skipped over) from this input stream without blocking.
      void close()
      Reads all remaining message body data and then close this input stream.
      int read()
      Reads the next byte of data from the input stream.
      int read​(byte[] data, int offset, int length)
      Reads up to length bytes of data from the underlying InputStream into an array of bytes.
      • Methods inherited from class java.io.InputStream

        mark, markSupported, nullInputStream, read, 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

      • IdentityMessageBodyInputStream

        public IdentityMessageBodyInputStream​(java.io.InputStream is,
                                              int bodyLength)
        Creates a new instance of IdentityMessageBodyInputStream with the InputStream is with the predefined length bodyLength. The bodyLength should be the maximum number of bytes can be read from the InputStream.
        Parameters:
        is - the underlying InputStream to read the body content of the HTTP message body
        bodyLength - the number of bytes can be read from the underlying InputStream.
    • Method Detail

      • available

        public int available()
                      throws java.io.IOException
        Returns the number of bytes that can be read (or skipped over) from this input stream without blocking.
        Overrides:
        available in class java.io.InputStream
        Returns:
        the number of available bytes could be read from the stream
        Throws:
        java.io.IOException - if IO Error occurs.
      • close

        public void close()
                   throws java.io.IOException
        Reads all remaining message body data and then close this input stream. This method DOES NOT close the underlying stream (i.e. the TCP connection stream). It is the responsibility of the HTTPSession to close the underlying 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 - when an error occurs while closing the stream
      • read

        public int read()
                 throws java.io.IOException
        Reads the next byte of data from the input stream. The byte value is returned as an int in the range of 0 to 255. If no byte is available because the end of the stream has been reached, the value -1 is returned. This method blocks until input data is available, the end of the stream is detected, or an exception is thrown.
        Specified by:
        read in class java.io.InputStream
        Returns:
        the next byte of data from the input stream, or -1 if the end of the input stream has been reached.
        Throws:
        java.io.IOException - If a premature EOF is reached, this stream is closed and an IOException is thrown.
      • read

        public int read​(byte[] data,
                        int offset,
                        int length)
                 throws java.io.IOException
        Reads up to length bytes of data from the underlying InputStream into an array of bytes. An attempt is made to read as many as length bytes, but the amount of bytes can be read from the InputStream could be less than length, even 0. The number of bytes actually read are returned as an integer.
        Overrides:
        read in class java.io.InputStream
        Parameters:
        data - the byte array to store the read bytes from the underlying InputStream
        offset - the starting index of byte array data to store the bytes
        length - the number of bytes intended to be read by the caller of this method
        Returns:
        the number of bytes actually read from the underlying InputStream. If the end of stream has been reached, returns -1
        Throws:
        java.io.IOException - thrown in the following cases:
        • if this stream is already closed
        • if an EOF is reached prematurely on the underlying InputStream
        See Also:
        InputStream.read(byte[], int, int)