Maison  >  Article  >  Java  >  Comment puis-je ajouter efficacement des fichiers à un fichier Zip en Java ?

Comment puis-je ajouter efficacement des fichiers à un fichier Zip en Java ?

DDD
DDDoriginal
2024-11-21 05:56:11792parcourir

How Can I Efficiently Append Files to a Zip File in Java?

Ajouter des fichiers à un fichier Zip en Java : explorer des méthodes efficaces

Lorsque vous travaillez avec des fichiers war, il est courant d'extraire leur contenu, d'ajouter nouveaux fichiers, puis créez un nouveau fichier war. Cependant, ce processus peut prendre du temps en raison de la nécessité d'expansion et de recompression.

Une alternative efficace à considérer consiste à ajouter directement des fichiers au fichier war. Bien que la documentation Java ne fournisse pas de conseils explicites à ce sujet, il existe des bibliothèques externes qui activent cette fonctionnalité.

TrueZip et bibliothèques similaires

TrueZip est une bibliothèque Java populaire pour manipuler les fichiers zip. Il prend en charge l'ajout de fichiers aux archives zip, ce qui en fait une solution adaptée au scénario décrit. Voici un exemple utilisant TrueZip :

ZipFile zipFile = new ZipFile("test.war");
zipFile.addFile("new.txt", new File("new.txt"));
zipFile.close();

Java 7 ジップファイルシステム機能

Dans Java 7, l'API Zip File System fournit un mécanisme natif pour accéder et manipuler fichiers zip en tant que système de fichiers. Cela permet d'écrire et de modifier directement des fichiers dans le zip sans avoir à reconditionner l'intégralité du fichier.

Map<String, String> env = new HashMap<>();
env.put("create", "true");
Path path = Paths.get("test.zip");
URI uri = URI.create("jar:" + path.toUri());
try (FileSystem fs = FileSystems.newFileSystem(uri, env)) {
  Path nf = fs.getPath("new.txt");
  try (Writer writer = Files.newBufferedWriter(nf, StandardCharsets.UTF_8, StandardOpenOption.CREATE)) {
    writer.write("hello");
  }
}

Le système de fichiers Zip Java 7 est une approche puissante et efficace pour ajouter des fichiers aux archives zip. Cependant, pour les anciennes versions de Java, des bibliothèques externes comme TrueZip peuvent combler cette lacune fonctionnelle.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn