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

Format d'échange (XML, JSON...) Java Discussion :

Copie de fichier XML [SAX]


Sujet :

Format d'échange (XML, JSON...) Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut Copie de fichier XML
    Petit souci,
    A partir d'un html je récupère un fichier XML fileItem :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileItem fileItem = multipartRequest.getFile( ...nom de la var HTML... );
    Ensuite je veux utiliser ce fichier et le parser avec SAX.
    Tout d'abord j'aimerais copier ce fichier dans un fichier temporaire puis faire le parser. Cependant ma copie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    java.io.File file = new java.io.File( "/temp.txt" );
    fis = (InputStream) fileItem.getInputStream();
    fos = new FileOutputStream( file );
    while(fis.read() != -1) {
       fos.write(fis.read()); 
    }
    ne fonctionne pas. Mon fichier XML résultat est dans un sale état. Quelqu'un pourrait il m'aider ?

    Merci.

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par tit_v Voir le message
    while(fis.read() != -1) {
    fos.write(fis.read());
    }
    avec un tel code, tu ne stocke dans l'outputstream que un byte sur deux, puisque tu abandonne un read sur deux.

    Sur ce genre de code, on ferais plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int read;
    while( (read =fis.read()) != -1) {
       fos.write(read); 
    }
    mais comme c'est pas très performant, on préfère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    byte[] buffer = new byte[16*1024];
    int read;
    while ( (read =fis.read(buffer)) != -1)
       fos.write(buffer,0,read);

  3. #3
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 13
    Par défaut merci
    c'est bon, ca fonctionne.
    Merci

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

Discussions similaires

  1. Copie d'un fichier XML avec modification de valeur d'attribut
    Par CocoRambo dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 11/07/2007, 09h21
  2. Copy/paste dans un fichier xml en VB .Net
    Par RaphTIM dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2007, 21h07
  3. Réponses: 13
    Dernier message: 27/10/2006, 11h50
  4. [DOM XML] Copie de fichier XML
    Par AlphonseBrown dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 26/03/2006, 23h11

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