Class FileSeekableStream

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

    public final class FileSeekableStream
    extends SeekableInputStream
    A SeekableInputStream implementation that uses random access directly to a File.
    Version:
    $Id: //depot/branches/personal/haraldk/twelvemonkeys/release-2/twelvemonkeys-core/src/main/java/com/twelvemonkeys/io/FileSeekableStream.java#4 $
    Author:
    Harald Kuhr
    See Also:
    FileCacheSeekableStream, MemoryCacheSeekableStream, RandomAccessFile
    • Constructor Summary

      Constructors 
      Constructor Description
      FileSeekableStream​(java.io.File pInput)
      Creates a FileSeekableStream that reads from the given File.
      FileSeekableStream​(java.io.RandomAccessFile pInput)
      Creates a FileSeekableStream that reads from the given file.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      int available()  
      void closeImpl()  
      protected void flushBeforeImpl​(long pPosition)
      Does nothing, as we don't really do any caching here.
      boolean isCached()
      Returns true if this Seekable stream caches data itself in order to allow seeking backwards.
      boolean isCachedFile()
      Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in a temporary file.
      boolean isCachedMemory()
      Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in main memory.
      int read()  
      int read​(byte[] pBytes, int pOffset, int pLength)  
      protected void seekImpl​(long pPosition)  
      • Methods inherited from class java.io.InputStream

        nullInputStream, readAllBytes, readNBytes, readNBytes, transferTo
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FileSeekableStream

        public FileSeekableStream​(java.io.File pInput)
                           throws java.io.FileNotFoundException
        Creates a FileSeekableStream that reads from the given File.
        Parameters:
        pInput - file to read from
        Throws:
        java.io.FileNotFoundException - if pInput does not exist
      • FileSeekableStream

        public FileSeekableStream​(java.io.RandomAccessFile pInput)
        Creates a FileSeekableStream that reads from the given file. The RandomAccessFile needs only to be open in read ("r") mode.
        Parameters:
        pInput - file to read from
    • Method Detail

      • isCached

        public boolean isCached()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data.
        See Also:
        Seekable.isCachedMemory(), Seekable.isCachedFile()
      • isCachedFile

        public boolean isCachedFile()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in a temporary file. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data in a temporary file.
        See Also:
        Seekable.isCached(), Seekable.isCachedMemory()
      • isCachedMemory

        public boolean isCachedMemory()
        Description copied from interface: Seekable
        Returns true if this Seekable stream caches data itself in order to allow seeking backwards, and the cache is kept in main memory. Applications may consult this in order to decide how frequently, or whether, to flush in order to conserve cache resources.
        Returns:
        true if this Seekable caches data in main memory.
        See Also:
        Seekable.isCached(), Seekable.isCachedFile()
      • available

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

        public void closeImpl()
                       throws java.io.IOException
        Specified by:
        closeImpl in class SeekableInputStream
        Throws:
        java.io.IOException
      • 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[] pBytes,
                        int pOffset,
                        int pLength)
                 throws java.io.IOException
        Overrides:
        read in class java.io.InputStream
        Throws:
        java.io.IOException
      • seekImpl

        protected void seekImpl​(long pPosition)
                         throws java.io.IOException
        Specified by:
        seekImpl in class SeekableInputStream
        Throws:
        java.io.IOException