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 :

decompresser le contenu d'un StringBuffer


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
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Par défaut decompresser le contenu d'un StringBuffer
    Bonjour,

    J'arrive pas à décompresser le contenu d'un StringBuffer qui contient le contenu d'un fichier XML zipé que j'ai reçu du Net.

    J'ai vu qu'il y a moyen de décompresser un fichier en java, mais je préfère ne pas créer un fichier et faire la décompression directement à partir d'un StringBuffer.

    Merci si quelqu'un à une idée

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Par défaut
    Si cela vient du net (donc probablement via HTTP) n'as-tu pas accès au flux (InputStream) plutôt qu'à un StringBuffer qui nécessite une étape intermédiare. De plus je ne suis pas sûr que le StringBuffer permette de récupérer correctement un contenu compressé qui par nature est binaire

    Sinon voici ce qui devrait faire l'affaire dans ton cas (je n'ai pas testé, ni mis les codes de contrôle : exceptions, fermeture de flux ...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StringBuffer buffer = ......
    java.util.zip.ZipInputStream zipStream = new ZipInputStream ( new ByteArrayInputStream( buffer.toString().getBytes() ) );
    Et ensuite tu utilises l'InputStream (zipStream) pour récupérer les données décompressés.

    Dans le cas où tu as accès directement au flux, tu remplaces le code suivant par la référence à ton flux:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    buffer.toString().getBytes()
    Jacques Desmazières

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Par défaut
    Bonjour,

    J'ai utilisé la fonction ci-dessus, mais je reçois pas encore de résultats.

    Pour éclairer, je reçois un contenu gzip du Net (httpCon.getInputStream())
    et je veux le dézipé et stocker le résultat dans StringBuffer sb.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HttpURLConnection httpCon = (HttpURLConnection)server.openConnection();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    	ZipInputStream zipStream = new ZipInputStream( new BufferedInputStream(httpCon.getInputStream()));
    				byte[] tab = new byte[4096];
    				int lu = -1;
    				do {
    				 lu = zipStream.read(tab);
    				 sb.append(tab.toString());
    				} while (lu > 0);
    Mais il fonctionne pas. Si quelqu'un voit le problème, n'hésitez pas à me débloquer.
    Merci

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 88
    Par défaut
    ça marche, je devais faire GZipInputStream à la place du ZipInputStream, car il s'agit bien d'un fichier gzip.

    Merci tout le monde

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

Discussions similaires

  1. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38
  2. Perte du contenu des blobs
    Par macakou99 dans le forum Débuter
    Réponses: 10
    Dernier message: 22/05/2003, 15h17
  3. [LG]Ecrire le contenu d'un fichier dans un autre
    Par lucke dans le forum Langage
    Réponses: 10
    Dernier message: 26/04/2003, 20h48
  4. Réponses: 1
    Dernier message: 12/02/2003, 09h36
  5. Comment imprimer le contenu d'un TStringGrid
    Par scorpiwolf dans le forum C++Builder
    Réponses: 2
    Dernier message: 19/06/2002, 15h41

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