Как программно создать .zip или .tar на Java с помощью архиваторов и компрессоров Apache Commons

Опубликовано: 2016-03-08

Как создать .zip и .tar в Java программно

Apache Foundation по умолчанию поставляется с множеством утилит, которые мы можем использовать. В большинстве случаев мы как бы не знаем об утилите, которая существует для использования в нашей производственной среде.

В этом уроке мы рассмотрим одну из утилит, с помощью которой мы можем программно сжать любой файл или каталог в Java. Другими словами, простая утилита для работы с архивами.

Зачем нам эта утилита?

Когда-то я написал статью о том, как загружать файлы с использованием архитектуры Spring MVC. Если у вас очень большой файл и вы размещаете файлы других пользователей в какой-либо файловой системе, такой как netapp или filer и т. д., вы можете сжать файлы перед загрузкой. Вы можете жениться на приведенном ниже коде в своем приложении для достижения той же цели.

Давайте сначала проверим результат, чтобы лучше понять:

До:

Утилита Crunchify Tar — файлы и каталоги .zip или .tar

После:

файл crunchify*.zip, созданный программой Java

Давайте начнем:

  • Создайте класс CrunchifyCompressArchivesUtility.java
  • Добавьте ниже зависимость maven к вашему проекту.
  • Если у вас нет проекта maven, выполните следующие действия.

  • Мы собираемся использовать утилиту compress archivers Apache Commons.
  • Класс TarArchiveEntry представляет запись в архиве Tar. Он состоит из заголовка записи, а также файла записи. Записи могут создаваться одним из трех способов, в зависимости от того, как они будут использоваться.
  • Класс TarArchiveOutputStream записывает tar-архив UNIX как OutputStream.
  • Сначала мы заархивируем только файл
  • Так же в этой же программе заархивируем директорию
  • Мы собираемся преобразовать файл и каталог в файл .zip . Если вы хотите .tar , просто измените код ниже.
  • Пожалуйста, измените путь в приведенном ниже коде

Выход