Class InputStreamByteProvider

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

    public class InputStreamByteProvider
    extends java.lang.Object
    implements ByteProvider
    A ByteProvider implementation that wraps an InputStream, allowing data to be read, as long as there are no operations that request data from a previous offset.

    In other words, this ByteProvider can only be used to read data at ever increasing offsets.

    • Constructor Detail

      • InputStreamByteProvider

        public InputStreamByteProvider​(java.io.InputStream inputStream,
                                       long length)
        Constructs a InputStreamByteProvider from the specified InputStream
        Parameters:
        inputStream - the underlying InputStream
        length - the length of the InputStreamByteProvider
    • Method Detail

      • close

        public void close()
        Description copied from interface: ByteProvider
        Releases any resources the ByteProvider may have occupied
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface ByteProvider
        Specified by:
        close in interface java.io.Closeable
      • getFile

        public java.io.File getFile()
        Description copied from interface: ByteProvider
        Returns the underlying File for this ByteProvider, or null if this ByteProvider is not associated with a File.
        Specified by:
        getFile in interface ByteProvider
        Returns:
        the underlying file for this byte provider
      • getUnderlyingInputStream

        public java.io.InputStream getUnderlyingInputStream()
      • getInputStream

        public java.io.InputStream getInputStream​(long index)
                                           throws java.io.IOException
        Description copied from interface: ByteProvider
        Returns an input stream to the underlying byte provider starting at the specified index.

        The caller is responsible for closing the returned InputStream instance.

        Specified by:
        getInputStream in interface ByteProvider
        Parameters:
        index - where in the ByteProvider to start the InputStream
        Returns:
        the InputStream
        Throws:
        java.io.IOException - if an I/O error occurs
      • getName

        public java.lang.String getName()
        Description copied from interface: ByteProvider
        Returns the name of the ByteProvider. For example, the underlying file name.
        Specified by:
        getName in interface ByteProvider
        Returns:
        the name of the ByteProvider or null if there is no name
      • getAbsolutePath

        public java.lang.String getAbsolutePath()
        Description copied from interface: ByteProvider
        Returns the absolute path (similar to, but not a, URI) to the ByteProvider. For example, the complete path to the file.
        Specified by:
        getAbsolutePath in interface ByteProvider
        Returns:
        the absolute path to the ByteProvider or null if not associated with a File.
      • length

        public long length()
                    throws java.io.IOException
        Description copied from interface: ByteProvider
        Returns the length of the ByteProvider
        Specified by:
        length in interface ByteProvider
        Returns:
        the length of the ByteProvider
        Throws:
        java.io.IOException - if an I/O error occurs
      • isValidIndex

        public boolean isValidIndex​(long index)
        Description copied from interface: ByteProvider
        Returns true if the specified index is valid.
        Specified by:
        isValidIndex in interface ByteProvider
        Parameters:
        index - the index in the byte provider to check
        Returns:
        true if the specified index is valid
      • readByte

        public byte readByte​(long index)
                      throws java.io.IOException
        Description copied from interface: ByteProvider
        Reads a byte at the specified index
        Specified by:
        readByte in interface ByteProvider
        Parameters:
        index - the index of the byte to read
        Returns:
        the byte read from the specified index
        Throws:
        java.io.IOException - if an I/O error occurs
      • readBytes

        public byte[] readBytes​(long index,
                                long len)
                         throws java.io.IOException
        Description copied from interface: ByteProvider
        Reads a byte array at the specified index
        Specified by:
        readBytes in interface ByteProvider
        Parameters:
        index - the index of the byte to read
        len - the number of bytes to read
        Returns:
        the byte array read from the specified index
        Throws:
        java.io.IOException - if an I/O error occurs