|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.plexus.archiver.tar.TarFile
public class TarFile
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(TarEntry)
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.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface org.codehaus.plexus.archiver.ArchiveFile |
---|
ArchiveFile.Entry |
Constructor Summary | |
---|---|
TarFile(java.io.File file)
Creates a new instance with the given file. |
Method Summary | |
---|---|
void |
close()
|
java.util.Enumeration |
getEntries()
Implementation of ArchiveFile.getEntries() . |
java.io.InputStream |
getInputStream(ArchiveFile.Entry entry)
Returns an InputStream with the given entries contents. |
protected java.io.InputStream |
getInputStream(java.io.File file)
|
java.io.InputStream |
getInputStream(TarEntry 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 |
---|
public TarFile(java.io.File file)
Method Detail |
---|
public java.util.Enumeration getEntries() throws java.io.IOException
ArchiveFile.getEntries()
. Note, that there is
an interaction between this method and getInputStream(TarEntry)
,
or getInputStream(org.codehaus.plexus.archiver.ArchiveFile.Entry)
:
If an input stream is opened for any other entry than the enumerations
current entry, then entries may be skipped.
getEntries
in interface ArchiveFile
java.io.IOException
public void close() throws java.io.IOException
java.io.IOException
public java.io.InputStream getInputStream(ArchiveFile.Entry entry) throws java.io.IOException
ArchiveFile
InputStream
with the given entries contents.
getInputStream
in interface ArchiveFile
java.io.IOException
public java.io.InputStream getInputStream(TarEntry entry) throws java.io.IOException
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
.
java.io.IOException
protected java.io.InputStream getInputStream(java.io.File file) throws java.io.IOException
java.io.IOException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |