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

Java ME Discussion :

convertir un OutputStream en InputStream


Sujet :

Java ME

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 16
    Points
    16
    Par défaut convertir un OutputStream en InputStream
    bonjour a tous

    je suis en train de creer un MIDlet en J2ME qui recupère un fichier compresse et doit lire les données de ce fichier.

    j'ai trouvé des librairie pour faire tout cela, mais il reste un problème car une fois mon fichier decompressé, je me retrouve avec un OutputStream, or le parser XML que j'utilise nécessite un InputStream.

    Pour l'instant j'ai résolu le problème en créant un fichier temporaire que je supprime à la fin de l'éxécution mais je cherche une solution plus élégante (et qui ne demande pas de confirmation d'écriture sur le portable à l'utilisateur).
    Auriez-vous des idées pour résoudre ce problème ?

    merci d'avance.
    Have you ever been to Electric Lady Land ???

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Je pense qu'il faudrait retenir en mémoire le contenu de ton outputstream, dans un tableau de byte par exemple, ou une String, uu autre, en fonction de ce que ton parser XML peut accepter comme entrée; il y a forcément un autre moyen de parser du XML qu'en d'utilisant un InputStream.
    K

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    la librairie que j'utilise est kxml.

    au debut de la lecture du flux xml, je dois donner le flux d'entree au parser par la ligne de code : parser.setInput(new InputStreamReader(is));
    où parser est un KXmlParser et is est un InputStream.

    la methode setInput ne prend qu'un reader ou un inputStream comme parametre (d'apres la doc).
    j'avais essaye de changer de type de parametre sans resultats.

    j'ai vu plusieurs codes ou apparaissent des RecordStore, je ne connais pas cette classe, serait-elle adapte a mon probleme ? peut-on ouvrir un flux a partir d'une telle classe ?
    Have you ever been to Electric Lady Land ???

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Salut,

    Il te faut un java.io.Reader.

    Donc dans ton cas, tu peux au premier passage, stocker le contenu de ton XML dans un String, puis créer un StringReader avec ce dernier.

    Tu pourras alors parser ton XML.

    a+
    K

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 17
    Points : 16
    Points
    16
    Par défaut
    je n'ai pas trouve de StringReader pour J2me.

    cependant, ta reponse m'a mis sur la voie, car lorsque je decompresse mon fichier, je l'obtiens sous forme de tableau de bytes. (que j'ai convertis en OutputStream en pensant que ca se manipulerait plus facilement).

    en fait, il suffit que je mette le bout de code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          byte[] decompArr;
          decompArr=GZIP.inflate(comArr);
          reader= new InputStreamReader(new ByteArrayInputStream(decompArr));
    comArr étant les données compressées sous forme de tableau de bytes.

    puis, je fournis directement le reader que je viens de créer à mon parser.

    merci beaucoup pour ta reponse !!
    Have you ever been to Electric Lady Land ???

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

Discussions similaires

  1. Socket, OutputStream et InputStream bloquent
    Par benji1801 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 26/04/2011, 20h02
  2. Convertir un OutputStream en String
    Par metalcoyote dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 30/10/2007, 10h15
  3. [Stream] OutputStream -> InputStream
    Par anykeyh dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 22/11/2005, 22h20
  4. [Stream] Transformer un OutputStream en InputStream
    Par kevredon dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 18/06/2005, 12h20
  5. Transformer un OutputStream en un InputStream
    Par glRaZ dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 29/04/2004, 11h10

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