Уровень сжатия с использованием Apache Commons Compress

Я пытаюсь найти настройки уровня сжатия в библиотеке Apache Commons Compress для типов архивов tar и gzip.

Скажите, пожалуйста, поддерживается ли она библиотекой? Если да, то как мне его настроить?


person VextoR    schedule 21.01.2013    source источник


Ответы (2)


Вы не можете.

Во-первых, tar вообще не сжимается; это просто формат архива.

Во-вторых, gzip использует один тип сжатия, deflate. Схемы сжатия, которые допускают «уровни», используют эти уровни для выбора между алгоритмами (или, в случае сжатия с потерями, сколько информации нужно отбросить).

person parsifal    schedule 21.01.2013
comment
Вы правы в том, что библиотека Apache Commons Compress не поддерживает его, но один и тот же алгоритм сжатия часто можно запускать с разными параметрами (размером блока, размером словаря и т. д.) и достигать худших или лучших коэффициентов сжатия за счет вычислительной сложности. Инструмент gzip GNU делает это, и тестирование произвольного текстового файла, сравнение -1 (самый быстрый/худший) с -9 (самый медленный/лучший) дает файл на 50% больше примерно за половину времени. - person jarnbjo; 21.01.2013

tar сам по себе не является сжатым форматом, он просто объединяет несколько файлов в один (отсюда и название, файлы слипаются, как будто они были покрыты tar).

Вы не можете изменить уровень сжатия, если вам нужно лучшее сжатие, используйте bzip2 вместо gzip.

person us2012    schedule 21.01.2013
comment
Название tar является аббревиатурой от ленточного архива. - person jarnbjo; 21.01.2013
comment
@jarnbjo Я почти уверен, что многие возможные имена обсуждались, и tar было выбрано как потому, что это аббревиатура от ленточного архиватора, так и потому, что оно броское и имеет изображение склеенных файлов. - person us2012; 21.01.2013