Class TarFile

  • All Implemented Interfaces:
    ArchiveFile
    Direct Known Subclasses:
    BZip2TarFile, GZipTarFile, XZTarFile

    public class TarFile
    extends java.lang.Object
    implements ArchiveFile

    Implementation of ArchiveFile for tar files.

    Compared to ZipFile, this one should be used with some care, due to the nature of a tar file: While a zip file contains a catalog, a tar file does not. In other words, the only way to read a tar file in a performant manner is by iterating over it from the beginning to the end. If you try to open another entry than the "next" entry, then you force to skip entries, until the requested entry is found. This may require to reread the entire file!

    In other words, the recommended use of this class is to use getEntries() and invoke getInputStream(TarArchiveEntry) only for the current entry. Basically, this is to handle it like TarArchiveInputStream.

    The advantage of this class is that you may write code for the ArchiveFile, which is valid for both tar files and zip files.

    • Constructor Summary

      Constructors 
      Constructor Description
      TarFile​(java.io.File file)
      Creates a new instance with the given file.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      java.util.Enumeration<org.apache.commons.compress.archivers.ArchiveEntry> getEntries()
      Implementation of ArchiveFile.getEntries().
      protected java.io.InputStream getInputStream​(java.io.File file)  
      java.io.InputStream getInputStream​(org.apache.commons.compress.archivers.ArchiveEntry entry)
      Returns an InputStream with the given entries contents.
      java.io.InputStream getInputStream​(org.apache.commons.compress.archivers.tar.TarArchiveEntry entry)
      Returns an InputStream with the given entries contents.
      • Methods inherited from class java.lang.Object

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

      • TarFile

        public TarFile​(java.io.File file)
        Creates a new instance with the given file.
    • Method Detail

      • close

        public void close()
                   throws java.io.IOException
        Throws:
        java.io.IOException
      • getInputStream

        public java.io.InputStream getInputStream​(org.apache.commons.compress.archivers.ArchiveEntry entry)
                                           throws java.io.IOException
        Description copied from interface: ArchiveFile
        Returns an InputStream with the given entries contents. org.apache.commons.compress.archivers.ArchiveEntry
        Specified by:
        getInputStream in interface ArchiveFile
        Throws:
        java.io.IOException
      • getInputStream

        public java.io.InputStream getInputStream​(org.apache.commons.compress.archivers.tar.TarArchiveEntry entry)
                                           throws java.io.IOException
        Returns an InputStream with the given entries contents. This InputStream may be closed: Nothing happens in that case, because an actual close would invalidate the underlying TarArchiveInputStream.
        Throws:
        java.io.IOException
      • getInputStream

        protected java.io.InputStream getInputStream​(java.io.File file)
                                              throws java.io.IOException
        Throws:
        java.io.IOException