Class LazyFileContentInputStream

  • All Implemented Interfaces:
    Closeable, AutoCloseable

    public class LazyFileContentInputStream
    extends org.apache.commons.io.input.AutoCloseInputStream
    This input stream delays opening the file content until the first byte is read, and closes and discards the underlying stream as soon as the end of input has been reached or when the stream is explicitly closed.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class org.apache.commons.io.input.AutoCloseInputStream

        org.apache.commons.io.input.AutoCloseInputStream.Builder
      • Nested classes/interfaces inherited from class org.apache.commons.io.input.ProxyInputStream

        org.apache.commons.io.input.ProxyInputStream.AbstractBuilder<T extends Object,​B extends org.apache.commons.io.build.AbstractStreamBuilder<T,​B>>
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected org.apache.commons.vfs2.FileObject fileObject
      The file object to read from.
      protected boolean opened
      True if the input stream was opened.
    • Constructor Summary

      Constructors 
      Constructor Description
      LazyFileContentInputStream​(org.apache.commons.vfs2.FileObject fileObject)
      Creates a new LazyFileInputStream for the given file.
    • Field Detail

      • fileObject

        protected final org.apache.commons.vfs2.FileObject fileObject
        The file object to read from.
      • opened

        protected boolean opened
        True if the input stream was opened. It is also set to true if the stream was closed without reading (to avoid opening the file content after the stream was closed).
    • Constructor Detail

      • LazyFileContentInputStream

        public LazyFileContentInputStream​(org.apache.commons.vfs2.FileObject fileObject)
                                   throws org.apache.commons.vfs2.FileSystemException
        Creates a new LazyFileInputStream for the given file. If the file is unreadable, a FileSystemException is thrown. The file is not opened until the first byte is read from the stream.
        Parameters:
        fileObject - the file
        Throws:
        org.apache.commons.vfs2.FileNotFoundException
        org.apache.commons.vfs2.FileSystemException
    • Method Detail

      • read

        public int read()
                 throws IOException
        Overrides:
        read 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
      • reset

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

        public boolean markSupported()
        Overrides:
        markSupported in class org.apache.commons.io.input.ProxyInputStream
      • mark

        public void mark​(int readlimit)
        Overrides:
        mark in class org.apache.commons.io.input.ProxyInputStream
      • skip

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

        public int read​(byte[] b)
                 throws IOException
        Overrides:
        read in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException
      • read

        public int read​(byte[] b,
                        int off,
                        int len)
                 throws IOException
        Overrides:
        read in class org.apache.commons.io.input.ProxyInputStream
        Throws:
        IOException