begin process at 2008 09 06 19:59:28
1 237 931 membres
313 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

COMPRESSION D'UN ENSEMBLE DE DONNÉES EN UNE SEULE ARCHIVE .ZIP


Information sur la source

Catégorie :Multimedia Classé sous : compresser, compression, zip, archive, données Niveau : Débutant Date de création : 19/08/2005 Vu : 4 540

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

Ce code vous permet de compresser un ensemble de données en un seul fichier archive d'extension .zip. Il y a des commentaires donc vous pourrez le modifier selon vos besoins.

Source

  • import java.util.zip.*;
  • import java.io.*;
  • public class ZIP {
  • public static void main(String args[]) throws Exception {
  • //Déclaration de l'archive ZIP
  • String rep = "c:compresse";
  • String fichzip = "zippé.zip";
  • File fichier = new File(rep, fichzip);
  • FileOutputStream flux = new FileOutputStream(fichier);
  • ZipOutputStream fichierZIP = new ZipOutputStream(flux);
  • //Méthode de compression DEFLATED
  • fichierZIP.setMethod(ZipOutputStream.DEFLATED);
  • //Niveau de compression
  • //9 = BEST_COMPRESSION
  • fichierZIP.setLevel(Deflater.BEST_COMPRESSION);
  • boolean fin = false;
  • int n = 1;
  • BufferedReader entree = new BufferedReader(new
  • InputStreamReader(System.in));
  • while(!fin){
  • System.out.println("Nom du fichier numero "+n+" a archiver.\nNe pas
  • oublier l'extension. \nTapez \"x2802x\" pour sortir");
  • System.out.println ();
  • n++;
  • String Fich = entree.readLine();
  • if(Fich.equals("x2802x")){ fin = true; }
  • ZipEntry entreeZIP = new ZipEntry(Fich);
  • fichierZIP.putNextEntry(entreeZIP);
  • //Envoi du contenu dans l'archive à travers un flux
  • BufferedOutputStream flushOut = new BufferedOutputStream(fichierZIP);
  • DataOutputStream fileData = new DataOutputStream(flushOut);
  • if(Fich.equals("x2802x")){fileData.writeBytes("c'est la fin!");}
  • else{
  • System.out.println("Entrez les donnees a garder ici.");
  • System.out.println("Pour finir taper x2802x sur une ligne
  • vide.");
  • System.out.println();
  • while(!(Fich=entree.readLine()).equals("x2802x")){
  • fileData.writeBytes(Fich);
  • fileData.flush();
  • }
  • Fich = "";
  • }
  • //Fermeture de l'archive jusqu'à la prochaîne entrée
  • fichierZIP.closeEntry();
  • System.out.println ("Taille : " + entreeZIP.getCompressedSize());
  • System.out.println ();
  • if(Fich.equals("x2802x")){ fileData.close(); }
  • }
  • //Fermeture de l'archive et du flux
  • fichierZIP.close();
  • flux.flush();
  • flux.close();
  • }
  • }
   import java.util.zip.*;
   import java.io.*;

   public class ZIP {
   
      public static void main(String args[]) throws Exception {
      
      //Déclaration de l'archive ZIP
         String rep = "c:compresse";
         String fichzip = "zippé.zip";
         File fichier = new File(rep, fichzip);
         FileOutputStream flux = new FileOutputStream(fichier);
         ZipOutputStream fichierZIP = new ZipOutputStream(flux);
      
      //Méthode de compression DEFLATED
         fichierZIP.setMethod(ZipOutputStream.DEFLATED);
      
      //Niveau de compression
      //9 = BEST_COMPRESSION
         fichierZIP.setLevel(Deflater.BEST_COMPRESSION);
      
         boolean fin = false;
         int n = 1;
         BufferedReader entree = new BufferedReader(new 

InputStreamReader(System.in));
         while(!fin){
         
            System.out.println("Nom du fichier numero "+n+" a archiver.\nNe pas 

oublier l'extension. \nTapez \"x2802x\" pour sortir");
         	System.out.println ();
            n++;
         
            String Fich = entree.readLine();
            if(Fich.equals("x2802x")){ fin = true; }
         
            ZipEntry entreeZIP = new ZipEntry(Fich);
            fichierZIP.putNextEntry(entreeZIP);
         
            //Envoi du contenu dans l'archive à travers un flux
            BufferedOutputStream flushOut = new BufferedOutputStream(fichierZIP);
            DataOutputStream fileData = new DataOutputStream(flushOut);
            if(Fich.equals("x2802x")){fileData.writeBytes("c'est la fin!");}
            else{
            	System.out.println("Entrez les donnees a garder ici.");
            	System.out.println("Pour finir taper x2802x sur une ligne 

vide.");
            	System.out.println();
            	while(!(Fich=entree.readLine()).equals("x2802x")){
               	fileData.writeBytes(Fich);
            		fileData.flush();
            	}
            	Fich = "";
            }
            
            //Fermeture de l'archive jusqu'à la prochaîne entrée
            fichierZIP.closeEntry();
            System.out.println ("Taille : " + entreeZIP.getCompressedSize());
         	System.out.println ();
         
            if(Fich.equals("x2802x")){ fileData.close(); }
         }
      //Fermeture de l'archive et du flux
         fichierZIP.close();
         flux.flush();
         flux.close();
      }
   }
  • signaler à un administrateur
    Commentaire de radius02 le 19/08/2005 22:18:37

    Salut Puffy28!

    G executé ton code mais y a une exception:

    >>exception in thread "main" java.io.FileNotFoundException: c:compresse\zippÙ.zip...

  • signaler à un administrateur
    Commentaire de puffy28 le 19/08/2005 22:51:22

    C normal radius02!
    Tu n'as pas créé le repertoire compresse sur la racine c: !
    Si tu veux tu peux changer le nom du repertoire et son emplacement; mais dans ce cas, tu le changeras aussi dans le code.
    Je te rappelle aussi que ce code n'est qu'un début; juste pour faire connaitre l'utilité du paquage java.util.zip!
    Exploite le et crée ton propre logiciel de compression et décompression (zip ou gzip).
    Bon courage!

  • signaler à un administrateur
    Commentaire de radius02 le 20/08/2005 15:07:09

    Bien sûr! g ete bete sur ce coup! Là ça marche.
    j'aimerais créer un logiciel de compression/decompression et ton code est un bon début pour moi! Merci!

  • signaler à un administrateur
    Commentaire de oscarima le 22/08/2005 09:25:33

    Cela est un bon exemple, il va surement me faire gagner du temps.
    Merci !

  • signaler à un administrateur
    Commentaire de mikerob le 23/08/2005 17:53:27

    C'est plutôt bien comme bout de code. Mais maintenant la question qui tue : Et si je veux pouvoir compresser des fichiers qui ont des noms avec des accents ? :D
    Bon ça les compressent mais si je regarde avec winzip p.ex, les noms des fichiers ont des accents bizarres...

    Réponse lorsque des gens s'interesseront au problème ;)

    Mike

  • signaler à un administrateur
    Commentaire de afaf2006 le 14/03/2006 20:49:35

    tu va faire ecrasement des fichiers

  • signaler à un administrateur
    Commentaire de afaf2006 le 14/03/2006 20:49:38

    tu va faire ecrasement des fichiers

  • signaler à un administrateur
    Commentaire de afaf2006 le 14/03/2006 21:29:12

    faudra mieux ne pas utiliser des actions en java car il fait des bougues à votre programme de ma part pas d'accent

  • signaler à un administrateur
    Commentaire de abdouinfomiage le 31/07/2006 17:24:59

    ou est ce que j pourais trouver le diver mysql merci

Ajouter un commentaire

Pub



Appels d'offres

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS