Comment créer .zip ou .tar par programmation en Java à l'aide des archiveurs et des compresseurs Apache Commons

Publié: 2016-03-08

Comment créer .zip et .tar en Java par programmation

La fondation Apache est livrée par défaut avec de nombreux utilitaires à utiliser. Dans la plupart des cas, nous ignorons en quelque sorte l'utilité qui existe pour une utilisation dans notre environnement de production.

Dans ce didacticiel, nous passerons en revue l'un des utilitaires permettant de compresser n'importe quel fichier ou répertoire par programme en Java. En d'autres termes, un simple utilitaire d'archivage.

Pourquoi avons-nous besoin de cet utilitaire?

Il y a quelque temps, j'ai écrit un article sur la façon de télécharger des fichiers à l'aide de l'architecture Spring MVC. Si vous avez un très gros fichier et que vous hébergez d'autres fichiers d'utilisateurs dans certains systèmes de fichiers tels que netapp ou filer, etc., vous souhaiterez peut-être compresser les fichiers avant de les télécharger. Vous pouvez intégrer le code ci-dessous dans votre application pour atteindre le même objectif.

Examinons d'abord un résultat pour mieux comprendre :

Avant de:

Crunchify Tar Utility - Fichier et répertoire .zip ou .tar

Après:

fichier crunchify*.zip créé par le programme Java

Commençons:

  • Créer la classe CrunchifyCompressArchivesUtility.java
  • Ajoutez ci-dessous la dépendance maven à votre projet.
  • Si vous n'avez pas de projet Maven, suivez ces étapes.

  • Nous allons utiliser l'utilitaire Apache Commons compress archivers
  • La classe TarArchiveEntry représente une entrée dans une archive Tar. Il se compose de l'en-tête de l'entrée, ainsi que du fichier de l'entrée. Les entrées peuvent être instanciées de trois manières, selon la façon dont elles doivent être utilisées.
  • La classe TarArchiveOutputStream écrit une archive tar UNIX en tant que OutputStream.
  • Nous allons d'abord archiver juste un fichier
  • Toujours dans le même programme, nous archiverons un répertoire
  • Nous allons convertir le fichier et le répertoire en fichier .zip . Si vous voulez .tar , modifiez simplement le code ci-dessous.
  • Veuillez changer le chemin dans le code ci-dessous

Sortir