Class BoundedSeekableByteChannelInputStream

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

    class BoundedSeekableByteChannelInputStream
    extends java.io.InputStream
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.nio.ByteBuffer buffer  
      private long bytesRemaining  
      private java.nio.channels.SeekableByteChannel channel  
      private static int MAX_BUF_LEN  
    • 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)
      Reads up to len bytes of data from the input stream into an array of bytes.
      private int read​(int len)  
      • Methods inherited from class java.io.InputStream

        available, mark, markSupported, nullInputStream, read, readAllBytes, readNBytes, readNBytes, reset, skip, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • buffer

        private final java.nio.ByteBuffer buffer
      • channel

        private final java.nio.channels.SeekableByteChannel channel
      • bytesRemaining

        private long bytesRemaining
    • Constructor Detail

      • BoundedSeekableByteChannelInputStream

        public BoundedSeekableByteChannelInputStream​(java.nio.channels.SeekableByteChannel channel,
                                                     long size)
    • Method Detail

      • read

        public int read()
                 throws java.io.IOException
        Specified by:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws java.io.IOException
        Reads up to len bytes of data from the input stream into an array of bytes.

        An attempt is made to read as many as len bytes, but a smaller number may be read. The number of bytes actually read is returned as an integer.

        This implementation may return 0 if the underlying SeekableByteChannel is non-blocking and currently hasn't got any bytes available.

        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • read

        private int read​(int len)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • close

        public void close()
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Overrides:
        close in class java.io.InputStream