Я посмотрел библиотеку Zip по умолчанию, которая поставляется с JDK и библиотеками сжатия Apache, и я недоволен ими по 3 причинам:
Они раздуты и имеют плохой дизайн API. Мне нужно написать 50 строк выходного массива байтовых пластин, ввести данные в формате zip, отфильтровать потоки и закрыть соответствующие потоки, перехватить исключения и самостоятельно переместить байтовые буферы ? Почему у меня не может быть простого API, который выглядит так
Zipper.unzip(InputStream zipFile, File targetDirectory, String password = null)
иZipper.zip(File targetDirectory, String password = null)
работает?Кажется, что сжатие, разархивирование уничтожает метаданные файла, а обработка пароля нарушается.
Кроме того, все библиотеки, которые я пробовал, были в 2-3 раза медленнее по сравнению с инструментами zip из командной строки, которые я получаю с UNIX?
Для меня (2) и (3) - второстепенные моменты, но я действительно хочу хорошую проверенную библиотеку с однострочным интерфейсом.