Pour compresser (on dit aussi "zipper") un fichier on utilise une instance de ZipOutputStream. La classe ZipEntry représente quant à elle une entrée du fichier compressé.
Dans l'exemple suivant, on compresse le fichier "source.txt" vers "fichier.zip" :
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; public class ExempleZip { public static void main(String args[]) throws IOException { // nom du fichier original String nomFichierSource = "source.txt"; // nom du futur fichier compressé String nomFichierZip = "fichier.zip"; // tampon de lecture-écriture byte tampon[] = new byte[1024]; FileInputStream fis = new FileInputStream( new File(nomFichierSource)); // création du flux de compression ZipOutputStream zos = new ZipOutputStream( new FileOutputStream(nomFichierZip)); // un fichier compressés peut avoir plusieurs entrées (fichiers) ZipEntry entree = new ZipEntry(nomFichierSource); zos.putNextEntry(entree); boolean fini = false; int taille; while (!fini) { taille = fis.read(tampon); // read() retourne -1 quand il n'y a plus rien à lire if (taille != -1) { zos.write(tampon, 0, taille); } else { fini = true; } } zos.close(); fis.close(); } }