Cómo crear .zip o .tar programáticamente en Java utilizando Apache Commons Archivers and Compressors

Publicado: 2016-03-08

Cómo crear .zip y .tar en Java programáticamente

Apache Foundation por defecto viene con muchas utilidades para que las usemos. En la mayoría de los casos, no somos conscientes de la utilidad que existe para usar en nuestro entorno de producción.

En este tutorial repasaremos una de las utilidades mediante las cuales podemos comprimir cualquier archivo o directorio mediante programación en Java. En otras palabras, utilidad de archivos simples.

¿Por qué necesitamos esta utilidad?

Hace algún tiempo escribí un artículo sobre cómo cargar archivos usando la arquitectura Spring MVC. Si tiene un archivo muy grande y está alojando archivos de otros usuarios en algún sistema de archivos como netapp o filer, etc., es posible que desee comprimir los archivos antes de cargarlos. Puede unir el código a continuación en su aplicación para lograr el mismo propósito.

Veamos un resultado primero para entender mejor:

Antes:

Utilidad Crunchify Tar - Archivo y Directorio .zip o .tar

Después:

archivo crunchify*.zip creado por el programa Java

Empecemos:

  • Crear clase CrunchifyCompressArchivesUtility.java
  • Agregue a continuación la dependencia maven a su proyecto.
  • Si no tiene un proyecto maven, siga estos pasos.

  • Vamos a utilizar la utilidad de compress archivers de Apache Commons
  • La clase TarArchiveEntry representa una entrada en un archivo Tar. Consta del encabezado de la entrada, así como del Archivo de la entrada. Las entradas se pueden instanciar de una de tres maneras, dependiendo de cómo se vayan a utilizar.
  • La clase TarArchiveOutputStream escribe un archivo tar de UNIX como OutputStream.
  • Primero archivaremos solo un archivo
  • También en el mismo programa archivaremos un directorio
  • Vamos a convertir el archivo y el directorio a un archivo .zip . Si desea .tar , simplemente cambie el código a continuación.
  • Cambie la ruta en el código a continuación

Producción