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 :

Modifier le flux d'un Reader/InputStreamReader


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Par défaut Modifier le flux d'un Reader/InputStreamReader
    Bonjour,

    J'ai un petit soucis avec des flux d'entrée/sorties... C'est un truc que j'ai jamais beaucoup utilisé, du coup, j'ai des lacunes dans le domaine.

    En fait, je dois récupérer un fichier xml pour modifier des données dedans, puis le renvoyer à Ibatis.
    Le reader, obtenu à partir du fichier de config que je dois lire, est du type InputStreamReader.

    J'ai créé un buffer à partir du reader.

    A des fins de tests, j'ai fait afficher les lignes, ce qui fonctionne.
    Par contre, lorsque je repasse mon reader à ma méthode, j'ai une erreur:

    XML Parser Error. Cause: org.xml.sax.SAXException: Fatal Error: URI=null Line=-1: Premature end of file
    J'en conclut, que le readline est arrivé à la fin du fichier, d'où l'erreur !
    J'ai alors essayé des réset, des mark, etc... sur le flux, mais rien à faire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    Reader reader = Resources.getResourceAsReader("com/bdd/dao/daoConfig.xml");
    //			System.out.println(reader.toString());
     
    			BufferedReader br=new BufferedReader(reader);
    			String ligne;
     
    			while ((ligne=br.readLine())!=null){
    				System.out.println(ligne);
    			}
     
    DaoManagerBuilder.buildDaoManager(reader);
    Mon but étant de modifier le contenu de mon flux, j'aimerai donc:

    - Lire mon fichier -> OK
    - Parcourir lignes par lignes -> OK
    - Modifier le contenu, et réécrite dans le fichier -> ??
    - Repasser le flux modifié à ma méthode DaoManagerBuilder.buildDaoManager qui attend donc un reader (il faut donc convertir le flux modifié) -> ??

    Je m'en remets à vous, car moi, les flux, ça me dépasse ^^

    merci d'avance

  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
    pour modifier des ficheirs, en général, on utilise un outputstream. Ici, dans ton cas, si le fichier est "petit" (= tiens en mémoire facilement), je te recommanderais plutot cette approche, la plus simple à mettre en oeuvre:

    lit ton ficheir ligne par ligne, avec ces ligne construit toi un String contenant ce que tu veux obtenir (représente donc le contenu modifié). Appelons cette String "monContenu", tu n'a plus qu'à fermer ton reader (plus besoin) et à passer à ibatis un new StringReader(monContenu).

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Par défaut
    Je te remercie
    Oui, mon fichier est court (quelques ko), je vais essayer ta solution, je te tiens informé

    Merci beaucoup !

  4. #4
    Membre éclairé
    Inscrit en
    Mai 2005
    Messages
    364
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 364
    Par défaut
    OK, super, ça marche top
    Je ne connaissais pas le StringReader, mais ça va me changer la vie !

    Merci

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 20/02/2011, 23h20
  2. Modifier largeur colonne de flux rss
    Par valarno dans le forum Firefox
    Réponses: 0
    Dernier message: 15/12/2009, 18h11
  3. Modifier une ligne dans un flux
    Par matteli dans le forum C++
    Réponses: 7
    Dernier message: 31/01/2008, 17h11
  4. Filtre DirectShow qui modifie le flux MPEG-2
    Par epix444 dans le forum DirectX
    Réponses: 18
    Dernier message: 13/10/2006, 15h09
  5. [C#]Modifier l'image dans une PictureBox depuis un flux http
    Par f.colo dans le forum Windows Forms
    Réponses: 1
    Dernier message: 14/02/2006, 09h18

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