Class RangeInputStream

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

    public class RangeInputStream
    extends java.io.FilterInputStream
    Filters an input stream to expose only a given range.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private int availableSize
      The range size available.
      private long endIndex
      The end index inside the source stream.
      private long position
      The current position.
      private Range range
      The range to satisfy.
      private long startIndex
      The start index inside the source stream.
      private long totalSize
      The total size of the source stream.
      • Fields inherited from class java.io.FilterInputStream

        in
    • Constructor Summary

      Constructors 
      Constructor Description
      RangeInputStream​(java.io.InputStream in, long totalSize, Range range)
      Constructs a stream exposing only a range of a given source stream.
    • Method Summary

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

        close, 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
    • Field Detail

      • position

        private volatile long position
        The current position.
      • range

        private volatile Range range
        The range to satisfy.
      • totalSize

        private volatile long totalSize
        The total size of the source stream.
      • startIndex

        private final long startIndex
        The start index inside the source stream.
      • endIndex

        private final long endIndex
        The end index inside the source stream.
      • availableSize

        private volatile int availableSize
        The range size available.
    • Constructor Detail

      • RangeInputStream

        public RangeInputStream​(java.io.InputStream in,
                                long totalSize,
                                Range range)
        Constructs a stream exposing only a range of a given source stream.
        Parameters:
        in - The source input stream.
        totalSize - The total size of the source stream.
        range - The range to satisfy.
    • Method Detail

      • available

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

        public void mark​(int readlimit)
        Overrides:
        mark in class java.io.FilterInputStream
      • 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