A drop-in replacement for the classes in the package
{@link java.util.zip} which read and write ZIP files.
The classes in this package read and write ZIP files according to
a subset of PKWARE's
ZIP File Format Specification
,
Version 6.3.2 from September 28, 2007.
The subset has been selected in order to achieve the following
objectives:
-
Full interoperability with ZIP files read or written by the
package {@link java.util.zip} of Sun's Java SE 6 implementation.
-
Support for arbitrary character sets, in particular
IBM Code Page 437 (alias IBM PC) for PKZIP compatibility
and UTF-8 for Java Archive (JAR) compatibility.
Note that using any other character set except CP437 or UTF-8
is strongly discouraged because it will result in
interoperability issues with third party tools, especially
when interchanging archive files between different locales!
-
Support for reading and writing ZIP64 extensions with the
following restrictions:
-
The maximum file size is {@link java.lang.Long#MAX_VALUE}.
-
The maximum number of entries in the Central Directory
is {@link java.lang.Integer#MAX_VALUE}.
-
The offsets in ZIP64 files must respect a preamble if
present, i.e. they must by exact.
This is in contrast to ZIP32 files where the offsets
do not need to respect a preamble if present.
Preambles are primarily used to contain self extracting
(SFX) executable code.
-
{@link de.schlichtherle.util.zip.ZipFile} supports reading
archive data from the random access read only interface
{@link de.schlichtherle.io.rof.ReadOnlyFile},
which allows to read archive data from complex data sources
such as RAES encrypted ZIP files directly without the need to
decrypt these to a temporary file first (see package
{@link de.schlichtherle.crypto.io.raes}).