|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectjava.io.OutputStream
java.io.FilterOutputStream
de.schlichtherle.util.zip.BasicZipOutputStream
de.schlichtherle.io.archive.zip.ZipOutputArchive
public class ZipOutputArchive
An implementation of OutputArchive to write ZIP archives.
This output archive can only write one entry at a time.
Archive drivers may wrap this class in a
MultiplexedOutputArchive
to overcome this limitation.
ZipDriver| Nested Class Summary | |
|---|---|
private static class |
ZipOutputArchive.Crc32OutputStream
|
private class |
ZipOutputArchive.EntryOutputStream
This entry output stream writes directly to our subclass. |
private class |
ZipOutputArchive.TempEntryOutputStream
This entry output stream writes the entry to a temporary file. |
| Field Summary | |
|---|---|
private OutputArchiveMetaData |
metaData
|
private ZipInputArchive |
source
|
private static String |
TEMP_FILE_PREFIX
Prefix for temporary files created by the multiplexer. |
private ZipEntry |
tempEntry
|
| Fields inherited from class de.schlichtherle.util.zip.BasicZipOutputStream |
|---|
DEFAULT_CHARSET |
| Fields inherited from class java.io.FilterOutputStream |
|---|
out |
| Constructor Summary | |
|---|---|
ZipOutputArchive(OutputStream out,
String charset,
int level,
ZipInputArchive source)
Creates a new instance which uses the output stream, character set and compression level. |
|
ZipOutputArchive(OutputStream out,
String charset,
ZipInputArchive source)
Deprecated. |
|
| Method Summary | |
|---|---|
void |
finish()
Retain the postamble of the source ZIP archive, if any. |
Enumeration |
getArchiveEntries()
Returns an enumeration of the ArchiveEntry instances in this
archive (i.e. written so far). |
ArchiveEntry |
getArchiveEntry(String entryName)
Returns the ArchiveEntry for the given entry name or
null if no entry with this name has been written
or started to be written. |
OutputArchiveMetaData |
getMetaData()
Returns the meta data for this input archive. |
int |
getNumArchiveEntries()
Returns the number of ArchiveEntry instances in this archive. |
OutputStream |
getOutputStream(ArchiveEntry dstEntry,
ArchiveEntry srcEntry)
Returns a new OutputStream for writing the contents of the
given archive entry. |
boolean |
isBusy()
Returns whether this output archive is busy writing an archive entry or not. |
void |
setMetaData(OutputArchiveMetaData metaData)
Sets the meta data for this input archive. |
void |
storeDirectory(ArchiveEntry entry)
Deprecated. This method will be removed in the next major version number release and should be implemented as getOutputStream(entry, null).close(). |
private void |
storeTempEntry(ZipEntry entry,
File temp)
|
| Methods inherited from class de.schlichtherle.util.zip.BasicZipOutputStream |
|---|
close, closeEntry, entries, getComment, getEncoding, getEntry, getLevel, getMethod, length, putNextEntry, putNextEntry, setComment, setLevel, setMethod, size, write, write |
| Methods inherited from class java.io.FilterOutputStream |
|---|
flush, write |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface de.schlichtherle.io.archive.spi.OutputArchive |
|---|
close |
| Field Detail |
|---|
private static final String TEMP_FILE_PREFIX
private final ZipInputArchive source
private OutputArchiveMetaData metaData
private ZipEntry tempEntry
| Constructor Detail |
|---|
public ZipOutputArchive(OutputStream out,
String charset,
ZipInputArchive source)
throws NullPointerException,
UnsupportedEncodingException,
IOException
NullPointerException
UnsupportedEncodingException
IOException
public ZipOutputArchive(OutputStream out,
String charset,
int level,
ZipInputArchive source)
throws NullPointerException,
UnsupportedEncodingException,
IOException
level - The compression level to use.
IllegalArgumentException - If level is not in the
range [1..9]
and is not -1.
NullPointerException
UnsupportedEncodingException
IOException| Method Detail |
|---|
public int getNumArchiveEntries()
OutputArchiveArchiveEntry instances in this archive.
This method may be called before the archive is closed and must also reflect entries which have not yet been closed.
getNumArchiveEntries in interface OutputArchivepublic Enumeration getArchiveEntries()
OutputArchiveArchiveEntry instances in this
archive (i.e. written so far).
This method may be called before the archive is closed and must also reflect entries which have not yet been closed.
getArchiveEntries in interface OutputArchivepublic ArchiveEntry getArchiveEntry(String entryName)
OutputArchiveArchiveEntry for the given entry name or
null if no entry with this name has been written
or started to be written.
This method may be called before the archive is closed and must also reflect entries which have not yet been closed.
getArchiveEntry in interface OutputArchiveentryName - A valid archive entry name - never null.
public OutputStream getOutputStream(ArchiveEntry dstEntry,
ArchiveEntry srcEntry)
throws IOException
OutputArchiveOutputStream for writing the contents of the
given archive entry.
The returned stream should preferrably be unbuffered, as buffering is usually done in higher layers (all copy routines in TrueZIP do this and most client applications do it, too). Buffering twice does not increase, but decrease performance.
Note that the stream is guaranteed to be closed before the
OutputArchive.close() method of this archive is called!
getOutputStream in interface OutputArchivedstEntry - A valid reference to an archive entry.
The runtime class of this entry is the same as the runtime class
of the entries returned by
ArchiveDriver.createArchiveEntry(de.schlichtherle.io.archive.Archive, java.lang.String, de.schlichtherle.io.archive.spi.ArchiveEntry).srcEntry - If not null, this identifies the entry
from which TrueZIP is actually copying data from and should be
used to implement the Direct Data Copying (DDC) feature.
Note that there is no guarantee on the runtime type of this
object; it may have been created by other drivers.
Furthermore, this not exclusively used for archive
copies, so you should not simply copy all properties
of the source entry to the entry (see
ArchiveDriver.createArchiveEntry(Archive, String, ArchiveEntry)
for comparison).
For example, the ZIP driver family uses this to copy the
already deflated data if the source entry is another
ZIP file entry.
As another example, the TarDriver
uses this to determine the size of the input file, thereby
removing the need to create (yet another) temporary file.
OutputStream to write the
archive entry data to.
null is not allowed!
OutputArchiveBusyException - If the archive is currently busy
on output for another entry.
This exception is guaranteed to be recoverable, meaning it
should be possible to write the same entry again as soon as
the archive is not busy on output anymore.
FileNotFoundException - If the archive entry is not accessible
for some reason.
IOException - On any other exceptional condition.public final boolean isBusy()
isBusy in class BasicZipOutputStream
private void storeTempEntry(ZipEntry entry,
File temp)
throws IOException
IOException
public final void storeDirectory(ArchiveEntry entry)
throws IOException
getOutputStream(entry, null).close().
OutputArchiveentry as a directory enry.
storeDirectory in interface OutputArchiveentry - The archive entry to write. This is never
null and safe to be casted to the archive entry
type actually created by the
ArchiveDriver.createArchiveEntry(de.schlichtherle.io.archive.Archive, java.lang.String, de.schlichtherle.io.archive.spi.ArchiveEntry) method.
IOException - On any exceptional condition.
public void finish()
throws IOException
finish in class BasicZipOutputStreamZipException - If and only if writing the entry is impossible
because the resulting file would not comply to the ZIP file
format specification.
IOException - On any I/O related issue.public OutputArchiveMetaData getMetaData()
OutputArchivenull.
getMetaData in interface OutputArchivepublic void setMetaData(OutputArchiveMetaData metaData)
OutputArchive
setMetaData in interface OutputArchivemetaData - The meta data - may not be null.
|
TrueZIP 6.8.2 | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||