Class LimitedInputStream

java.lang.Object
java.io.InputStream
java.io.FilterInputStream
com.logicaldoc.util.io.LimitedInputStream
All Implemented Interfaces:
Closeable, AutoCloseable

public class LimitedInputStream extends FilterInputStream
This is a decorator that limits a given input stream to a maximum size
Since:
7.6.3
Author:
Marco Meschieri - LogicalDOC
  • Constructor Details

    • LimitedInputStream

      public LimitedInputStream(InputStream in, long limit)
  • Method Details

    • available

      public int available() throws IOException
      Overrides:
      available in class FilterInputStream
      Throws:
      IOException
    • mark

      public void mark(int readLimit)
      Overrides:
      mark in class FilterInputStream
    • read

      public int read() 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
    • reset

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

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

      public static void readFully(InputStream in, byte[] b) throws IOException
      Attempts to read enough bytes from the stream to fill the given byte array, with the same behavior as DataInput.readFully(byte[]). Does not close the stream.
      Parameters:
      in - the input stream to read from.
      b - the buffer into which the data is read.
      Throws:
      EOFException - if this stream reaches the end before reading all the bytes.
      IOException - if an I/O error occurs.
    • readFully

      public static void readFully(InputStream in, byte[] b, int off, int len) throws IOException
      Attempts to read len bytes from the stream into the given array starting at off, with the same behavior as DataInput.readFully(byte[], int, int). Does not close the stream.
      Parameters:
      in - the input stream to read from.
      b - the buffer into which the data is read.
      off - an int specifying the offset into the data.
      len - an int specifying the number of bytes to read.
      Throws:
      EOFException - if this stream reaches the end before reading all the bytes.
      IOException - if an I/O error occurs.
    • skipFully

      public static void skipFully(InputStream in, long n) throws IOException
      Discards n bytes of data from the input stream. This method will block until the full amount has been skipped. Does not close the stream.
      Parameters:
      in - the input stream to read from
      n - the number of bytes to skip
      Throws:
      EOFException - if this stream reaches the end before skipping all the bytes
      IOException - if an I/O error occurs, or the stream does not support skipping
    • read

      public static int read(InputStream in, byte[] b, int off, int len) throws IOException
      Reads some bytes from an input stream and stores them into the buffer array b. This method blocks until len bytes of input data have been read into the array, or end of file is detected. The number of bytes read is returned, possibly zero. Does not close the stream.

      A caller can detect EOF if the number of bytes read is less than len. All subsequent calls on the same stream will return zero.

      If b is null, a NullPointerException is thrown. If off is negative, or len is negative, or off+len is greater than the length of the array b, then an IndexOutOfBoundsException is thrown. If len is zero, then no bytes are read. Otherwise, the first byte read is stored into element b[off], the next one into b[off+1], and so on. The number of bytes read is, at most, equal to len.

      Parameters:
      in - the input stream to read from
      b - the buffer into which the data is read
      off - an int specifying the offset into the data
      len - an int specifying the number of bytes to read
      Returns:
      the number of bytes read
      Throws:
      IOException - if an I/O error occurs