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 :

Fichiers ZIP et GZ


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut Fichiers ZIP et GZ
    Bonjour à tous !

    J'ai une classe qui pour l'instant gère les fichiers ZIP (extraction ou ajouter, etc ...) Dans cette classe, j'utilisais des "ZipOutputStream", "ZipInputStream", et depuis peu "ZipFile" (java.util.zip.ZipFile).
    Tout fonctionne tant que je lis (ou écrit) un fichier ZIP.

    Seulement maintenant, j'aimerais traiter un fichier GZ (construit par un système linux). Et là, rien ne marche : le "ZipInputStream" ne contient pas d'entry, et l'ajout de "new ZipFile(this.fichierZIP);" provoque une "ZipException : error in opening zip file".

    Comment puis-je faire pour ouvrir ce fichier GZ ? Est-ce possible ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Pour l'instant, j'ai trouvé cette solution :
    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
    	public NFichier extraireGZ(File fic) throws NFichierException {
    		NFichier fichier = new NFichier("c:/extractgz");
    		try {
    			GZIPInputStream zipin;
    			try {
    			  FileInputStream in = new FileInputStream(fic);
    			  zipin = new GZIPInputStream(in);
    			}
    			catch (IOException e) {
    			  System.out.println("Couldn't open " + fic + ".");
    			  return null;
    			}
    			BufferedOutputStream outFichier =new BufferedOutputStream(new FileOutputStream(fichier));
     
    			byte octet[] = new byte[32];
    			int offset = 0;
    			int num;
    			while ((num = zipin.read(octet, offset, 32)) != -1) {
    					outFichier.write(octet, offset, num);
    				}
    			outFichier.close();
    		}
    		catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
    		return fichier;
    	}
    Elle marche. Je sais que dans mon fichier fic.gz, je n'ai qu'un seul fichier. Mais s'il y en avait plusieurs, je serais coincé.

    Quelqu'un a une solution ?

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Si je ne dis pas de connerie, tu ne peux avoir qu'un fichier dans un .gz
    Si tu en veux plusieurs, il faut un .tar.gz.
    Tar permet de regrouper plusieurs fichiers/répertoire en un.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 268
    Par défaut
    Pour info, ce fichier GZ vient d'une sauvegarde automatique de base de données (postgres) sur un serveur linux.
    Et effectivement, l'ancienne méthode de sauvegarde contenant plusieurs fichiers créait un tar.gz. Cette nouvelle méthode ne crée donc plus qu'un fichier GZ.

    Si le fichier GZ ne peut contenir qu'un seul fichier, ça répond parfaitement à mes attentes. Merci !!!

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

Discussions similaires

  1. Problème d'extraction d'un fichier zip
    Par njely dans le forum Langage
    Réponses: 4
    Dernier message: 24/05/2005, 22h36
  2. [Zip] Créer un fichier zip
    Par Mykeul dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 07/03/2005, 16h38
  3. Executer un fichier zip
    Par Sébastien THEVOT dans le forum C++Builder
    Réponses: 15
    Dernier message: 11/10/2004, 10h35
  4. Extraction d'un fichier zip
    Par dyason dans le forum Général Python
    Réponses: 2
    Dernier message: 13/07/2004, 12h35
  5. [Fichier Zip] Comment zipper un fichier
    Par caro_a dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/05/2004, 09h40

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