1


0

Comment puis-je créer une archive zip en Java à partir de fichiers générés en mémoire?

Voici l’affaire, je travaille dans un bureau Web universitaire et nous fournissons quelques modèles de sites Web pour les départements et clubs universitaires. J’ai été chargé de créer un formulaire Web qui leur permettra de sélectionner le modèle qu’ils souhaitent et de fournir un titre qui sera inséré par programme dans le modèle qu’ils sélectionnent avant le téléchargement.

Ma question est, puis-je extraire le modèle en mémoire, insérer le titre et le sortir dans une archive zip * sans écrire un fichier temporaire sur le disque *?

Il semble que ZipEntry de Java nécessite un nom de fichier et ne peut pas simplement utiliser des données déjà en mémoire.

2 Answer


4


Non, le nom "nom de fichier" est probablement un peu déroutant ici, mais cela signifie le nom de fichier d’entrée dans l’archive ZIP que vous créez. Jetez un oeil sur ZipOutputStream. Il est créé comme un wrapper sur tous les autres flux de sortie, soit «FileOutputStream» ou «ByteArrayOutputStream». En utilisant ByteArrayOutputStream, vous pouvez créer une archive zip complètement en mémoire.


1


C’est parce que contrairement à GZIP, ZIP peut compresser plusieurs fichiers.

Donc, même si vous devez fournir un nom de fichier (qui sera enregistré dans le fichier zip), cela ne signifie pas que le fichier doit exister physiquement dans le système de fichiers. C’est juste le nom qui sera donné au fichier dans l’archive.