org.codehaus.plexus.archiver.tar

Class TarFile

public class TarFile extends 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 only for the current entry. Basically, this is to handle it like TarInputStream.

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
TarFile(File file)
Creates a new instance with the given file.
Method Summary
voidclose()
EnumerationgetEntries()
Implementation of getEntries.
InputStreamgetInputStream(Entry entry)
InputStreamgetInputStream(TarEntry entry)
Returns an InputStream with the given entries contents.
protected InputStreamgetInputStream(File file)

Constructor Detail

TarFile

public TarFile(File file)
Creates a new instance with the given file.

Method Detail

close

public void close()

getEntries

public Enumeration getEntries()
Implementation of getEntries. Note, that there is an interaction between this method and getInputStream, or TarFile: If an input stream is opened for any other entry than the enumerations current entry, then entries may be skipped.

getInputStream

public InputStream getInputStream(Entry entry)

getInputStream

public InputStream getInputStream(TarEntry entry)
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 TarInputStream.

getInputStream

protected InputStream getInputStream(File file)
Copyright © 2001-2009 Codehaus. All Rights Reserved.