Although the ZIP file format it is a proprietary, de-facto standard by PKWARE Inc., ZIP files are ubiquitous on the Internet and thus on many platforms today. The J2SE API provides a well known package java.util.zip with classes like ZipInputStream, ZipOutputStream and ZipFile for easy access to ZIP compatible files. However, this package has some limitations/disadvantages:
* Sun's implementation uses the character set UTF-8 (eight bit Unicode character set) for entry names and comments instead of CP437 (the genuine IBM-PC character set) as used by the de-facto standard PKZIP from PKWARE. As a result, you cannot read or write ZIP files with international entry file names such as "t?cht.txt" in a ZIP file created by a (southern) German.
* You need to use an additional API (the package java.util.zip) if your application needs to support ZIP compatible files in addition to ordinary files and directories, thereby significantly inflating your code and adding unnecessary complexity (which adds bugs, bugs, and even more bugs).
* You can either read or completely write ZIP compatible files, but you cannot just update individual entries.
* The classes do not support the concept of a directory, which you may want to create, modify, list or delete.
* You cannot browse a ZIP compatible file with a JFileChooser or FileSystemView.
The TrueZIP Library has been developed to overcome these limitations/disadvantages.