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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    ingénieur télécom
    Inscrit en
    Février 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre averti
    Homme Profil pro
    ingénieur télécom
    Inscrit en
    Février 2017
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    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
    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 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    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.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

+ 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