Class DbInputStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class DbInputStream
    extends org.apache.commons.io.input.AutoCloseInputStream
    This class represents an input stream backed by a database. The database objects are only acquired when reading from the stream, and stay open until the stream is closed, fully read, or garbage collected.

    This class does not support mark/reset. It is always to be wrapped using a BufferedInputStream.

    • Constructor Detail

      • DbInputStream

        protected DbInputStream​(DbDataStore store,
                                DataIdentifier identifier)
        Create a database input stream for the given identifier. Database access is delayed until the first byte is read from the stream.
        Parameters:
        store - the database data store
        identifier - the data identifier
    • Method Detail

      • openStream

        protected void openStream()
                           throws IOException
        Open the stream if required.
        Throws:
        IOException
      • read

        public int read()
                 throws IOException
        When the stream is consumed, the database objects held by the instance are closed.
        Overrides:
        read in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • read

        public int read​(byte[] b)
                 throws IOException
        When the stream is consumed, the database objects held by the instance are closed.
        Overrides:
        read in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        When the stream is consumed, the database objects held by the instance are closed.
        Overrides:
        read in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • close

        public void close()
                   throws IOException
        When the stream is consumed, the database objects held by the instance are closed.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Overrides:
        close in class org.apache.commons.io.input.AutoCloseInputStream
        Throws:
        IOException
      • skip

        public long skip​(long n)
                  throws IOException
        Overrides:
        skip in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • available

        public int available()
                      throws IOException
        Overrides:
        available in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • mark

        public void mark​(int readlimit)
        This method does nothing.
        Overrides:
        mark in class org.apache.commons.io.input.ProxyInputStream
      • reset

        public void reset()
                   throws IOException
        This method does nothing.
        Overrides:
        reset in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • markSupported

        public boolean markSupported()
        Check whether mark and reset are supported.
        Overrides:
        markSupported in class org.apache.commons.io.input.ProxyInputStream
        Returns:
        false