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

Collection et Stream Java Discussion :

Comment dézipper simplement un tar sous windows en Java


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 258
    Par défaut Comment dézipper simplement un tar sous windows en Java
    Bonjour,

    mon problème est dans l'intitulé.

    Manuellement, je renomme mon fichier.tar en fichier.tar.gz, et alors un double clic et winzip fait l'affaire.

    Je veux automatiser ce dézippage en Java (pour faire une comparaison de checksums) , mais je ne vois pas quelle API utilisé pour décompresser fichier.tar et si c'est faisable.

    Merci d'avance,

  2. #2
    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

  3. #3
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Pour ce genre de choses il peut être aussi utile de se plonger dans Ant, qui contient une grande quantité de services appelables directement depuis ses programmes java.

  4. #4
    Candidat au Club
    Inscrit en
    Septembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 3
    Par défaut
    Bonjour,

    Je voudrais rebondir sur ce post pour un problème de performances que je rencontre.
    Je m'explique : je dois récupérer un fichier (zip au départ, j'essaye avec tar non compressé maintenant) et le décompresser/désarchiver dans la foulée. Comme les fichiers sont volumineux j'ai tenté de "piper" les 2 opérations avec un thread qui récupère le fichier via scp (avec la bibliothèque ganymed) et un qui désarchive le fichier avec le zip "natif" de java ou java tar. La communication entre les 2 se fait via un PipedOutputStream->PipedInputStream.

    La version threadée est bien plus lente que la version purement séquentielle.

    Pour le zip je crois comprendre que, le catalogue se trouvant à la fin du fichier, le thread lit et relit le fichier sans pouvoir le décompresser jusqu'à en atteindre là fin, puis commence la décompression. Cela revient à du séquentiel mais avec beaucoup d'I/O parasites entre temps.

    Pour le tar le "journal" se trouve au début du fichier à ma connaissance, donc je ne comprends pas pourquoi dans ce cas la version threadée est 4 fois plus lente que la version séquentielle...

    Quelqu'un a une explication/un moyen d'optimiser le truc ?

    Merci d'avance

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/12/2006, 18h27
  2. [Apache]Comment cohabiter apache2 et tomcat5 sous Windows?
    Par jlassira dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 13/02/2006, 16h35
  3. Comment detecter une partition linux sous windows?
    Par ibtisss dans le forum Administration système
    Réponses: 5
    Dernier message: 09/02/2006, 11h15
  4. Comment désactiver Ctrl+Alt+Del sous Windows XP
    Par ETOKA dans le forum API, COM et SDKs
    Réponses: 6
    Dernier message: 04/06/2003, 13h34

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