Package ej.hoka.io

Class IdentityMessageBodyInputStream

    • Constructor Detail

      • IdentityMessageBodyInputStream

        public IdentityMessageBodyInputStream​(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 IOException
        Returns the number of bytes that can be read (or skipped over) from this input stream without blocking.
        Overrides:
        available in class InputStream
        Returns:
        the number of available bytes could be read from the stream
        Throws:
        IOException - if IO Error occurs.
      • close

        public void close()
                   throws 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 AutoCloseable
        Specified by:
        close in interface Closeable
        Overrides:
        close in class InputStream
        Throws:
        IOException - when an error occurs while closing the stream
      • read

        public int read()
                 throws 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 InputStream
        Returns:
        the next byte of data from the input stream, or -1 if the end of the input stream has been reached.
        Throws:
        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 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 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:
        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)