Package fr.gouv.vitam.common.stream

# Class ExactSizeInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
fr.gouv.vitam.common.stream.ExactSizeInputStream

All Implemented Interfaces:
  `Closeable`, `AutoCloseable`

public class ExactSizeInputStream extends FilterInputStream
Input stream that checks input stream size (avoids premature EOF or invalid file size) This input stream guaranties that an exception occur BEFORE the last data byte is returned. For empty streams (size=0), EOF check is done at constructor initialization time.

- ## Field Summary

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

  `in`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ExactSizeInputStream(InputStream in, long size)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getSize()`
  `void`
  `mark(int readlimit)`
  `boolean`
  `markSupported()`
  `int`
  `read()`
  `int`
  `read(byte[] b)`
  `int`
  `read(byte[] b, int off, int len)`
  `void`
  `reset()`
  `long`
  `skip(long n)`

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

  `available, close`

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

  `nullInputStream, readAllBytes, readNBytes, readNBytes, skipNBytes, transferTo`

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

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

- ## Constructor Details

  - ### ExactSizeInputStream

    public ExactSizeInputStream(InputStream in, long size) throws IOException
    Throws:
      `IOException`

- ## Method Details

  - ### read

    public int read() throws IOException
    Overrides:
      `read` in class `FilterInputStream`
    Throws:
      `IOException`

  - ### read

    public int read(byte[] b) throws IOException
    Overrides:
      `read` in class `FilterInputStream`
    Throws:
      `IOException`

  - ### read

    public int read(byte[] b, int off, int len) throws IOException
    Overrides:
      `read` in class `FilterInputStream`
    Throws:
      `IOException`

  - ### skip

    public long skip(long n) throws IOException
    Overrides:
      `skip` in class `FilterInputStream`
    Throws:
      `IOException`

  - ### markSupported

    public boolean markSupported()
    Overrides:
      `markSupported` in class `FilterInputStream`

  - ### mark

    public void mark(int readlimit)
    Overrides:
      `mark` in class `FilterInputStream`

  - ### reset

    public void reset() throws IOException
    Overrides:
      `reset` in class `FilterInputStream`
    Throws:
      `IOException`

  - ### getSize

    public long getSize()