IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Comment décompresser un fichier de format .gz


Sujet :

Entrée/Sortie Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    ingénieur télécom
    Inscrit en
    Février 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2017
    Messages : 54
    Points : 27
    Points
    27
    Par défaut Comment décompresser un fichier de format .gz
    Bonjour ,
    j'ai fait des recherches sur le net sur la décompression des fichiers .gz ,je l'ai essayé mais en vain , j'ai utilisé dernièrement mon code mais il ne fait rien voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPInputStream;
     
    public class GZipFile
    {
        private static final String INPUT_GZIP_FILE = "/C:/Users/ASUS/Downloads/malab.gz";
        private static final String OUTPUT_FILE = "file";
     
        public static void main( String[] args )
        {
        	GZipFile gZip = new GZipFile();
        	gZip.gunzipIt();
        }
     
        /**
         * GunZip it
         */
        public void gunzipIt(){
     
         byte[] buffer = new byte[1024];
     
         try{
     
        	 GZIPInputStream gzis =
        		new GZIPInputStream(new FileInputStream(INPUT_GZIP_FILE));
     
        	 FileOutputStream out =
                new FileOutputStream(OUTPUT_FILE);
     
            int len;
            while ((len = gzis.read(buffer)) > 0) {
            	out.write(buffer, 0, len);
            }
     
            gzis.close();
        	out.close();
     
        	System.out.println("Done");
     
        }catch(IOException ex){
           ex.printStackTrace();
        }
       }
    }
    Est_ce qu'il y a une différence entre .gz et gzip ?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    "Il ne fait rien" ? Il n'affiche pas d'erreur ? Il n'affiche pas "Done" ? Il ne crée pas de fichier nommé "file" sans extension ?

    Citation Envoyé par RabehBoubakri Voir le message
    Est_ce qu'il y a une différence entre .gz et gzip ?
    gzip est le nom du format de compression, .gz est l'extension usuelle donnée aux fichiers compressés qui utilisent ce format.
    Donc non, pas de différence.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    ingénieur télécom
    Inscrit en
    Février 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ingénieur télécom
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2017
    Messages : 54
    Points : 27
    Points
    27
    Par défaut
    Bonjour ,
    j'ai trouver une solution merci
    voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.zip.GZIPInputStream;
    import java.util.zip.GZIPOutputStream;
    public class GZIPExample {
    	public static void main(String[] args) {
           // String file = "/Users/pankaj/sitemap.xml";
            String gzipFile = "C:/Users/User/Documents/PFE/76/20161129/IMSI-627010102119665/1001-2147650270/RNCCN-MALABO1.172050+0100.xml.gz";
            String newFile = "C:/Users/User/Documents/PFE/76/20161129/IMSI-627010102119665/1001-2147650270/mama.txt";
     
            //compressGzipFile(file, gzipFile);
     
            decompressGzipFile(gzipFile, newFile);
     
        }
     
        private static void decompressGzipFile(String gzipFile, String newFile) {
            try {
                FileInputStream fis = new FileInputStream(gzipFile);
                GZIPInputStream gis = new GZIPInputStream(fis);
                FileOutputStream fos = new FileOutputStream(newFile);
                byte[] buffer = new byte[1024];
                int len;
                while((len = gis.read(buffer)) != -1){
                    fos.write(buffer, 0, len);
                }
                //close resources
                fos.close();
                gis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
     
        }
     
       /* private static void compressGzipFile(String file, String gzipFile) {
            try {
                FileInputStream fis = new FileInputStream(file);
                FileOutputStream fos = new FileOutputStream(gzipFile);
                GZIPOutputStream gzipOS = new GZIPOutputStream(fos);
                byte[] buffer = new byte[1024];
                int len;
                while((len=fis.read(buffer)) != -1){
                    gzipOS.write(buffer, 0, len);
                }
                //close resources
                gzipOS.close();
                fos.close();
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            
        }*/
     
    }

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 560
    Points : 21 622
    Points
    21 622
    Par défaut
    Depuis Java 1.7, tu pouvais simplifier comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static void decompressGzipFile(Path gzipFile, Path newFile) throws IOException {
      try(InputStream _cis = Files.newInputStream(gzipFile); InputStream in = new GZIPInputStream(_cis)) {
        Files.copy(in, newFile);
      }
    }
    A noter que ton code précédant ne s'assurait pas correctement que les close() étaient bien appelés.
    Il faut le faire, soit implicitement dans un try-with-resource comme dans mon code au-dessus, soit au moins dans un finally, en cas d'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment générer un fichier pré-formaté en cliquant sur un bouton ?
    Par breizh35000 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 22/02/2008, 18h14
  2. Réponses: 2
    Dernier message: 14/03/2006, 14h22
  3. Réponses: 3
    Dernier message: 12/10/2005, 13h53
  4. Réponses: 22
    Dernier message: 24/04/2005, 16h49
  5. Comment décompresser un fichier dans une application ?
    Par f6dqm1 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 14/01/2005, 16h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo