LimitedInputStream (Apache Tomcat 9.0.73 API Documentation)

Package org.apache.tomcat.util.http.fileupload.util

## Class LimitedInputStream

- java.lang.Object
- - java.io.InputStream
  - - java.io.FilterInputStream
    - - org.apache.tomcat.util.http.fileupload.util.LimitedInputStream

- All Implemented Interfaces:
    `java.io.Closeable`, `java.lang.AutoCloseable`, `Closeable`

      public abstract class LimitedInputStream
      extends java.io.FilterInputStream
      implements Closeable

  An input stream, which limits its data size. This stream is used, if the content length is unknown.

- - ### Field Summary

    - ### Fields inherited from class java.io.FilterInputStream

      `in`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `LimitedInputStream​(java.io.InputStream inputStream, long pSizeMax)` | Creates a new instance.

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `close()` | Closes this input stream and releases any system resources associated with the stream.
    `boolean` | `isClosed()` | Returns, whether this stream is already closed.
    `protected abstract void` | `raiseError​(long pSizeMax, long pCount)` | Called to indicate, that the input streams limit has been exceeded.
    `int` | `read()` | Reads the next byte of data from this input stream.
    `int` | `read​(byte[] b, int off, int len)` | Reads up to `len` bytes of data from this input stream into an array of bytes.

    - ### Methods inherited from class java.io.FilterInputStream

      `available, mark, markSupported, read, reset, skip`

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

      `nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo`

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

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

- - ### Constructor Detail

    - #### LimitedInputStream

          public LimitedInputStream​(java.io.InputStream inputStream,
                                    long pSizeMax)

      Creates a new instance.
      Parameters:
        `inputStream` - The input stream, which shall be limited.
        `pSizeMax` - The limit; no more than this number of bytes shall be returned by the source stream.

  - ### Method Detail

    - #### raiseError

          protected abstract void raiseError​(long pSizeMax,
                                             long pCount)
                                      throws java.io.IOException

      Called to indicate, that the input streams limit has been exceeded.
      Parameters:
        `pSizeMax` - The input streams limit, in bytes.
        `pCount` - The actual number of bytes.
      Throws:
        `java.io.IOException` - The called method is expected to raise an IOException.

    - #### read

          public int read()
                   throws java.io.IOException

      Reads the next byte of data from this input stream. The value byte is returned as an `int` in the range `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.

      This method simply performs `in.read()` and returns the result.

      Overrides:
        `read` in class `java.io.FilterInputStream`
      Returns:
        the next byte of data, or `-1` if the end of the stream is reached.
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `FilterInputStream.in`

    - #### read

          public int read​(byte[] b,
                          int off,
                          int len)
                   throws java.io.IOException

      Reads up to `len` bytes of data from this input stream into an array of bytes. If `len` is not zero, the method blocks until some input is available; otherwise, no bytes are read and `0` is returned.

      This method simply performs `in.read(b, off, len)` and returns the result.

      Overrides:
        `read` in class `java.io.FilterInputStream`
      Parameters:
        `b` - the buffer into which the data is read.
        `off` - The start offset in the destination array `b`.
        `len` - the maximum number of bytes read.
      Returns:
        the total number of bytes read into the buffer, or `-1` if there is no more data because the end of the stream has been reached.
      Throws:
        `java.lang.NullPointerException` - If `b` is `null`.
        `java.lang.IndexOutOfBoundsException` - If `off` is negative, `len` is negative, or `len` is greater than `b.length - off`
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `FilterInputStream.in`

    - #### isClosed

          public boolean isClosed()
                           throws java.io.IOException

      Returns, whether this stream is already closed.
      Specified by:
        `isClosed` in interface `Closeable`
      Returns:
        True, if the stream is closed, otherwise false.
      Throws:
        `java.io.IOException` - An I/O error occurred.

    - #### close

          public void close()
                     throws java.io.IOException

      Closes this input stream and releases any system resources associated with the stream. This method simply performs `in.close()`.
      Specified by:
        `close` in interface `java.lang.AutoCloseable`
      Specified by:
        `close` in interface `java.io.Closeable`
      Specified by:
        `close` in interface `Closeable`
      Overrides:
        `close` in class `java.io.FilterInputStream`
      Throws:
        `java.io.IOException` - if an I/O error occurs.
      See Also:
        `FilterInputStream.in`