Class SubInputStream

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable

    public class SubInputStream
    extends java.io.FilterInputStream
    This class is a FilterInputStream descendant that reads from an underlying InputStream up to a defined number of bytes or the end of the underlying stream. Closing this InputStream will not result in the underlying InputStream to be closed, too.

    This InputStream can be used to read chunks from a larger file of which the length is known in advance.

    • Field Summary

      • Fields inherited from class java.io.FilterInputStream

        in
    • Constructor Summary

      Constructors 
      Constructor Description
      SubInputStream​(java.io.InputStream in, long maxLen)
      Creates a new SubInputStream.
      SubInputStream​(java.io.InputStream in, long maxLen, boolean closeUnderlying)
      Creates a new SubInputStream.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()
      int read()
      int read​(byte[] b, int off, int len)
      long skip​(long n)
      • Methods inherited from class java.io.FilterInputStream

        available, mark, markSupported, read, reset
      • 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

      • SubInputStream

        public SubInputStream​(java.io.InputStream in,
                              long maxLen,
                              boolean closeUnderlying)
        Creates a new SubInputStream.
        Parameters:
        in - the InputStream to read from
        maxLen - the maximum number of bytes to read from the underlying InputStream until the end-of-file is signalled.
        closeUnderlying - true if the underlying stream should be closed when the close() method is called.
      • SubInputStream

        public SubInputStream​(java.io.InputStream in,
                              long maxLen)
        Creates a new SubInputStream. The underlying stream is not closed, when close() is called.
        Parameters:
        in - the InputStream to read from
        maxLen - the maximum number of bytes to read from the underlying InputStream until the end-of-file is signalled.
    • Method Detail

      • read

        public int read()
                 throws java.io.IOException
        Overrides:
        read in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Overrides:
        read in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • skip

        public long skip​(long n)
                  throws java.io.IOException
        Overrides:
        skip in class java.io.FilterInputStream
        Throws:
        java.io.IOException
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.FilterInputStream
        Throws:
        java.io.IOException