1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
|
import java.util.zip.*;
import java.util.* ;
import java.io.* ;
import java.io.File; //permet de lister les fichiers dans un répertoires
public class compress
{
public static void main(String [] argv) throws IOException
{
int BUFFER = 2048;
byte data[] = new byte[BUFFER];
File repertoire = new File("ACompresser");
File fichier;
fichier = null;;
String [] listeFichiers;
listeFichiers = repertoire.list();
// Creation du flux de sortie
FileOutputStream dest = new FileOutputStream("archive.zip");
BufferedOutputStream buff = new BufferedOutputStream(dest);
ZipOutputStream out = new ZipOutputStream(buff);
//Méthode et taux de compression
out.setMethod(ZipOutputStream.DEFLATED);
out.setLevel(9);
//Fichier compression de chaque fichier du répertoire ACompresser
for (int i = 0; i < listeFichiers.length; i++)
{
fichier = new File(listeFichiers[i]);
if (fichier.exists())
{
System.out.println("Lecture aprés test d'existance");
System.out.println("Nom du fichier : " + fichier.getName());
FileInputStream fi = new FileInputStream(listeFichiers[i]);
BufferedInputStream buffi = new BufferedInputStream(fi);
ZipEntry entry = new ZipEntry(listeFichiers[i]);
//Affectation de l'entrée au flux de sortie
out.putNextEntry(entry);
//Ecriture des entrées dans le flux de sortie par paquet de taille égale aux tampons d'entrée et de sortie
int count;
while((count = buffi.read(data, 0, BUFFER)) != -1)
{
out.write(data, 0, count);
}
//Fermeture des flux
out.closeEntry();
buffi.close();
}
}
out.close();
}
} |
Partager