org.apache.catalina.connector

## Class CoyoteInputStream

- java.lang.Object
- - java.io.InputStream
  - - javax.servlet.ServletInputStream
    - - org.apache.catalina.connector.CoyoteInputStream

All Implemented Interfaces:
  Closeable, AutoCloseable

    public class CoyoteInputStream
    extends ServletInputStream

This class handles reading bytes.

Author:
  Remy Maucherat, Jean-Francois Arcand

### Field Summary

Fields
`protected InputBuffer` `ib`

### Constructor Summary

Constructors
`protected` `CoyoteInputStream(InputBuffer ib)`

### Method Summary

Methods
`int` `available()`
`protected Object` `clone()` Prevent cloning the facade.
`void` `close()` Close the stream Since we re-cycle, we can't allow the call to super.close() which would permanently disable us.
`int` `read()`
`int` `read(byte[] b)`
`int` `read(byte[] b, int off, int len)`
`int` `readLine(byte[] b, int off, int len)` Reads the input stream, one line at a time.

### Methods inherited from class java.io.InputStream

`mark, markSupported, reset, skip`

### Methods inherited from class java.lang.Object

`equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### ib

    protected InputBuffer ib

### Constructor Detail

#### CoyoteInputStream

    protected CoyoteInputStream(InputBuffer ib)

### Method Detail

#### clone

    protected Object clone()
                    throws CloneNotSupportedException

Prevent cloning the facade.

Overrides:
  `clone` in class `Object`
Throws:
  `CloneNotSupportedException`

#### read

    public int read()
             throws IOException

Specified by:
  `read` in class `InputStream`
Throws:
  `IOException`

#### available

    public int available()
                  throws IOException

Overrides:
  `available` in class `InputStream`
Throws:
  `IOException`

#### read

    public int read(byte[] b)
             throws IOException

Overrides:
  `read` in class `InputStream`
Throws:
  `IOException`

#### read

    public int read(byte[] b,
           int off,
           int len)
             throws IOException

Overrides:
  `read` in class `InputStream`
Throws:
  `IOException`

#### readLine

    public int readLine(byte[] b,
               int off,
               int len)
                 throws IOException

Description copied from class: `javax.servlet.ServletInputStream`
Reads the input stream, one line at a time. Starting at an offset, reads bytes into an array, until it reads a certain number of bytes or reaches a newline character, which it reads into the array as well.

This method returns -1 if it reaches the end of the input stream before reading the maximum number of bytes.

Overrides:
  `readLine` in class `ServletInputStream`
Parameters:
  `b` - an array of bytes into which data is read
  `off` - an integer specifying the character at which this method begins reading
  `len` - an integer specifying the maximum number of bytes to read
Returns:
  an integer specifying the actual number of bytes read, or -1 if the end of the stream is reached
Throws:
  `IOException` - if an input or output exception has occurred

#### close

    public void close()
               throws IOException

Close the stream Since we re-cycle, we can't allow the call to super.close() which would permanently disable us.

Specified by:
  `close` in interface `Closeable`
Specified by:
  `close` in interface `AutoCloseable`
Overrides:
  `close` in class `InputStream`
Throws:
  `IOException`