begin process at 2010 02 09 23:55:23
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Application

 > COMPRESSION-DÉCOMPRESSION DE FICHIER

COMPRESSION-DÉCOMPRESSION DE FICHIER


 Information sur la source

Note :
7 / 10 - par 3 personnes
7,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Application Classé sous :fichier, compression, décompression, zip Niveau :Débutant Date de création :16/03/2007 Date de mise à jour :19/03/2007 13:43:42 Vu / téléchargé :8 521 / 651

Auteur : Moyan

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

Classe permetant la compression et décompression de fichier avec contrôle d'intégrité

Source

  • import java.io.*;
  • import java.util.zip.*;
  • import sun.text.Normalizer;
  • public class ZIPFichier {
  • File OBjFile;
  • public ZIPFichier() {
  • }
  • /**********************************************************************/
  • /**
  • *@param String SRC:Nom du Fichier Source nom.type
  • *@param String DEST:Nom du Fichier Destination du type .Zip
  • /**********************************************************************/
  • void compression(String SRC,String DEST) throws FileNotFoundException, IOException {
  • OBjFile = new File(SRC);
  • /*Une valeur de taille de tampon pour les buffers d’entrée et de
  • sortie utilisés par la suite, et un buffer de données*/
  • int BUFFER = 2048;
  • byte data[] = new byte[BUFFER];
  • /*Création d’un flux d’écriture vers un fichier, ce fichier sera l’archive Zip finale*/
  • FileOutputStream dest = new FileOutputStream(DEST);
  • // Contrôle des données ajout d'un checksum : Adler32 (plus rapide)
  • CheckedOutputStream checksum =new CheckedOutputStream(dest, new Adler32());
  • /*Création d’un buffer de sortie afin d’améliorer les performances d’écriture*/
  • BufferedOutputStream buff = new BufferedOutputStream(checksum);
  • /*Création d’un flux d’écriture Zip vers ce fichier à travers le buffer*/
  • ZipOutputStream out = new ZipOutputStream(buff);
  • /*Spécifier la méthode de compression désirée*/
  • out.setMethod(ZipOutputStream.DEFLATED);
  • /*Spécifier le taux de compression (entier positif entre 0 et 9)*/
  • out.setLevel(9);
  • /*les fichiers à compresser*/
  • FileInputStream fi = new FileInputStream(OBjFile.getPath());
  • /*Création d'un buffer d’entrée*/
  • BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER);
  • /*Création d'une entrée Zip*/
  • ZipEntry entry = new ZipEntry(unAccent(OBjFile.getName()));
  • /*affectation de l'entrée au flux de sortie*/
  • out.putNextEntry(entry);
  • /*Écriture 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 de l’entrée*/
  • out.closeEntry();
  • /*Fermeture des flux*/
  • buffi.close();
  • out.close();
  • }
  • /**********************************************************************/
  • /**
  • *@param String SRC:Nom du Fichier Source du type .Zip
  • *@param String DEST:Nom du Fichier Destination nom.type
  • /**********************************************************************/
  • void decompression(String SRC,String DEST) throws FileNotFoundException, IOException {
  • /*Déclaration d’un fichier destination*/
  • FileOutputStream FileDEST = new FileOutputStream(DEST);
  • /*Ouverture du fichier à décompresser*/
  • FileInputStream FileZipSRC = new FileInputStream(SRC);
  • /*Ouverture buffer sur ce fichier*/
  • BufferedInputStream buffer= new BufferedInputStream(FileZipSRC);
  • /*Création d’un flux de lecture Zip vers ce fichier à travers le buffer*/
  • ZipInputStream FluxZIP = new ZipInputStream(buffer);
  • ZipEntry entry;
  • if(FluxZIP.getNextEntry() != null){
  • byte[] tab = new byte[4096];
  • /*Lecture du fichier ZIP*/
  • int lu = -1;
  • do {
  • lu = FluxZIP.read(tab);
  • /*Test si Fin de fichier*/
  • if (lu > 0)
  • FileDEST.write(tab, 0, lu);
  • } while (lu > 0);
  • /*Vidage du tampon en écriture*/
  • FileDEST.flush();
  • /*Fermeture de l’archive*/
  • FluxZIP.close();
  • }
  • /*Fermeture du fichier destination*/
  • FileDEST.close();
  • /*Fermeture du fichier source*/
  • FileZipSRC.close();
  • }
  • /**********************************************************************/
  • /**
  • *@param String s:Caractère à tester
  • /**********************************************************************/
  • public static String unAccent(String s) {
  • String temp = Normalizer.normalize(s, Normalizer.DECOMP, 0);
  • return temp.replaceAll("[^\\p{ASCII}]","");
  • }
  • }
import java.io.*;
import java.util.zip.*;
import sun.text.Normalizer;

public class ZIPFichier {
    File OBjFile;
    public ZIPFichier() {

    }
/**********************************************************************/
/**
*@param String SRC:Nom du Fichier Source nom.type
*@param String DEST:Nom du Fichier Destination du type .Zip
/**********************************************************************/
    void compression(String SRC,String DEST) throws FileNotFoundException, IOException {

        OBjFile = new File(SRC);
        /*Une valeur de taille de tampon pour les buffers d’entrée et de
         sortie utilisés par la suite, et un buffer de données*/
        int BUFFER = 2048;
        byte data[] = new byte[BUFFER];
        /*Création d’un flux d’écriture vers un fichier, ce fichier sera l’archive Zip finale*/
        FileOutputStream dest = new FileOutputStream(DEST);
        // Contrôle des données ajout d'un checksum : Adler32 (plus rapide)
        CheckedOutputStream checksum =new CheckedOutputStream(dest, new Adler32());
        /*Création d’un buffer de sortie afin d’améliorer les performances d’écriture*/
        BufferedOutputStream buff = new BufferedOutputStream(checksum);
        /*Création d’un flux d’écriture Zip vers ce fichier à travers le buffer*/
        ZipOutputStream out = new ZipOutputStream(buff);
        /*Spécifier la méthode de compression désirée*/
        out.setMethod(ZipOutputStream.DEFLATED);
        /*Spécifier le taux de compression (entier positif entre 0 et 9)*/
        out.setLevel(9);
        /*les fichiers à compresser*/
        FileInputStream fi = new FileInputStream(OBjFile.getPath());
        /*Création d'un buffer d’entrée*/
        BufferedInputStream buffi = new BufferedInputStream(fi, BUFFER);
        /*Création d'une entrée Zip*/
        ZipEntry entry = new ZipEntry(unAccent(OBjFile.getName()));
        /*affectation de l'entrée au flux de sortie*/
        out.putNextEntry(entry);
        /*Écriture 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 de l’entrée*/
        out.closeEntry();
        /*Fermeture des flux*/
        buffi.close();
        out.close();
}
/**********************************************************************/
/**
*@param String SRC:Nom du Fichier Source du type .Zip
*@param String DEST:Nom du Fichier Destination nom.type
/**********************************************************************/
void decompression(String SRC,String DEST) throws FileNotFoundException, IOException {
    /*Déclaration d’un fichier destination*/
    FileOutputStream FileDEST = new FileOutputStream(DEST);
    /*Ouverture du fichier à décompresser*/
    FileInputStream FileZipSRC = new FileInputStream(SRC);
    /*Ouverture buffer sur ce fichier*/
    BufferedInputStream buffer= new BufferedInputStream(FileZipSRC);
    /*Création d’un flux de lecture Zip vers ce fichier à travers le buffer*/
    ZipInputStream FluxZIP = new ZipInputStream(buffer);
    ZipEntry entry;
    if(FluxZIP.getNextEntry() != null){
        byte[] tab = new byte[4096];
        /*Lecture du fichier ZIP*/
        int lu = -1;
        do {
            lu = FluxZIP.read(tab);
            /*Test si Fin de fichier*/
            if (lu > 0)
                FileDEST.write(tab, 0, lu);
        } while (lu > 0);
        /*Vidage du tampon en écriture*/
        FileDEST.flush();
        /*Fermeture de l’archive*/
        FluxZIP.close();
    }
    /*Fermeture du fichier destination*/
    FileDEST.close();
    /*Fermeture du fichier source*/
    FileZipSRC.close();

}
/**********************************************************************/
/**
*@param String s:Caractère à tester
/**********************************************************************/
    public static String unAccent(String s) {
    String temp = Normalizer.normalize(s, Normalizer.DECOMP, 0);
    return temp.replaceAll("[^\\p{ASCII}]","");
}

}

 Conclusion

Le fichier ZIP comporte toutes les information et explication du code ;-).

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

19 mars 2007 13:43:42 :
Ajout de commentaire

 Sources du même auteur

Source avec Zip CALENDRIER PERPÉTUEL

 Sources de la même categorie

Source avec Zip ANALYSEUR DE PROXY IRC ET HTTP AVEC UNE INTERFACE GRAPHIQUE par sisisousou
Source avec Zip Source avec une capture "PROGRAMMEUR", EST UN PROGRAMME QUI PERMET DE TAPER QUELQUE ... par edouard333
Source avec Zip Source avec une capture "NARRATEUR", PROGRAMME QUI "LIT" SE QU'ON ÉCRIT... par edouard333
Source avec Zip Source avec une capture RENAME-MOAR par cotepierrot
Source avec Zip Source avec une capture DWIKI (DESKTOPWIKI) par xsimo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture APPLICATION DE TRANSFERT D'UN FICHIER VIA FTP par aissam_k2000
COMPRESSION D'UN ENSEMBLE DE DONNÉES EN UNE SEULE ARCHIVE .Z... par puffy28
Source avec Zip ZIPEUR DE FICHIER 2 par grand_jeanluc
ZIPEUR DE FICHIER par harryharry
Source avec Zip COMPRESSION SELON L'ALGORITHME HUFFMAN par Khaarl

Commentaires et avis

Commentaire de Moyan le 16/08/2007 17:16:46

Merci de mettre des commentaire avec les notes!
Et surtout donnés moi vos critiques pour ke je m'améliore
Merci
Moyan

Commentaire de joshAUZORRRE le 20/11/2009 11:43:19 10/10

merci pour cette source je m'en sers pour créer des kmz =)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Zip, servlet, et fichier Excel [ par as634 ] J'ai créé un fichier excel grace à jExcel. Je voudrais insérer ce fichier dans une archive zip qui sera renvoyée par ma servlet.Voici mon code pour la Compatibilite de Zip? [ par larecrue ] Bonjour, J’ai quelques problemes: Le plus facile: comment fait on pour n’avoir que la petite croix pour fermer dans sa Jframe. Un peu pl How to "Splitter un fichier zip généré en java ? " [ par homerosaur ] Salut à tous,je recherche un moyen de splitter un fichier zip que je génère en java.Mille merci d'avance à qui pourrait m'aidertiti download d'un fichier zip sur un site internet [ par yann.jaunin ] Hello,j'essaye de télécharger un fichier zip qui se trouve sur un site internet. Je suis débutant donc soyez indulgent :-)voici l'erreur que j'aie :un PROBLEME DE ZIP [ par gui_llaume1 ] Bonjour à tous,J'explique mon cas.Je crée dans une appli swing à un moment un fichier zip à partir d'un tableau de String contenan decompresser un fichier zip [ par kam81 ] Bonjour,Je cherche de l'aide pour decompresser un fichier zip se trouvant dans un repertoire rep1et envoyer le resultat dans un repertoire rep2.merci. Lire fichier .zip [ par luckybenji86 ] Bonjour,J'aimerai savoir si quelqu'un à déja essayé de lire des fichier dans un .zip avec mot de passe.En utilisant la libririe java.util.zip mais cel Comment utiliser un fichier zip télécharger [ par Naidoo ] Bonsoir à tous,j'ai besoin d'aide car j'ai de la peine à cerner un certain problème...Pouvez vous m'expliquer, points par points, comment utiliser un 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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales