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 : 5 383

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();
      }
   }

Commentaires et avis

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

Discussions en rapport avec ce code source dans le forum

Compression en zip et zw [ par OxN ] Je dois monter une appli en Java me permettant de compresser (et decompresser) des fichiers en zip ou zw.. le problème, c'est que je suis débutant en (archive="applet.zip")et(codebase="downloads") [ par furiedonkey ] Bonjour je monte un site sur le java et j'ai un petit problème,dans mon dossier racine de mon site exemple (mon site) et dans le dossier(mon site) j'a cryptage+compression de données [ par mannouna ] J'ai un problème pour envoyer un fichier crypté selon les algorithmes RSA/AES et compressé selon l'algorithme de Huffman entre un client et un serveur compression audio [ par simson ] Bonjour, Existe il une classe pour compresser et décompresser un fichier sonore ( comme le mp3 par exemple) ou faut il faire l'algorithme soit gestion d'archive zip avec mot de passe (en java bien sûr) [ par reveur de lune ] Bonjour,Mon problème est simple: dézipper une archive .zip pourvue d'un mot de passe.Celà doit impérativement être automatisé dans mon programme.J'ai fractal compression des image [ par emimed ] j'ai fait un program en java sur la compression fractal mais j'ai un probleme de perdre des couleur dans l'etape de décompression d'image Programme d'installation [ par ounteni ] SalutJ'ai développé une application interfaçant une base de données Mysql. Il me reste à la déployer sur une machine pour utilisation. J'aimerai obten mise à jour de base de données chaque 2 secondes [ par irann ] salut! bonsoir à tous! comment je fais  une mise à jour de ma base de données chaque 2 secondes???? merci d'avance! /irann


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

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

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,700 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.