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 :

supprimer un fichier pour sauvegarder le même modifier a la place


Sujet :

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

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut supprimer un fichier pour sauvegarder le même modifier a la place
    Bonjour,
    Sujet un peu flou je l'accord...
    J'ai un fichier xml que j'ai convertie en String pour pouvoir modifier certaine valeur ensuite je le reconvertie en XML et je voudrais le sauvegarder a la place de l'ancien ce que je n'arrive pas....
    Voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    List<File> files = Searchfile.getRepertoire(f);
    		for (File fi : files){
    		   try {
    			     content = Readfile.Readfilefich(fi);
    			     System.out.println(content);
    			     String chemin = fi.getAbsolutePath();
    			     fi.delete();
    			     convert = Parse.root.asXML();
    			     System.out.println(convert);
    			     File fil = new File(chemin);
     
    		   } catch (IOException e) {
    			e.printStackTrace();
    		   }	
    		 System.out.println("Chemin fichier :" + fi.getAbsolutePath());
    			    	  }
    Le System.out.println(convert); m'affiche bien le fichier reconvertie en xml avec les modifs et je veux donc remplacer l'ancien par celui-ci.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    J'arrive maintenant à écrire dans le fichier mais je n'arrive pas a effacer le contenue car l'écriture se fait en dessous du xml deja redigé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     List<File> files = Searchfile.getRepertoire(f);
    			    	  for (File fi : files){
    			    		  try {
    			    			  content = Readfile.Readfilefich(fi);
    			    			  System.out.println(content);
    			    			  String chemin = fi.getAbsolutePath();
     
    			    			  convert = Parse.root.asXML();
    			    			  fi.delete();
    			    			  FileWriter fw = new FileWriter(chemin, true);
    			    			  BufferedWriter output = new BufferedWriter(fw);			    			  
    			    			  output.write(convert);
    			    			  //File fil = new File(chemin);
    			    			  output.flush();
    			    			  output.close();
    			    			  System.out.println(convert);
    			    		  } catch (IOException e) {
    							e.printStackTrace();
    			    		  }	
    			    		  System.out.println("Chemin fichier :" + fi.getAbsolutePath());
    			    	  }

  3. #3
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    regarde la valeur de retour de fi.delete(). Si ca renvoie false, l'effacement à raté. Sous windows, ca arrive quand des descripteurs sont toujours ouvert sur ce fichier. Ces descripteur pevuent etre un oubli de close() après la lecture dans ton code, ou un application dans ton système qui a ouvert le fichier.

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    J'ai reussi a faire mon delete et a réécrire a l'interieur par contre mon contenue qui est de XML est vraiment mal former (il est sur deux lignes) j'aimerai qu'il soit former correctement...
    Comment puis-je faire ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    for (File fi : files){
    			    		  try {
    			    			  content = Readfile.Readfilefich(fi);
    			    			  System.out.println(content);
    			    			  String chemin = fi.getAbsolutePath();
     
    			    			  convert = Parse.root.asXML();
     
    			    			  FileWriter fw = new FileWriter(chemin);
    			    			  BufferedWriter output = new BufferedWriter(fw);
    			    			  output.write("<!DOCTYPE beans PUBLIC "+"\"-//SPRING//DTD BEAN 2.0//EN\""
    			    					  +"\"http://www.springframework.org/dtd/spring-beans-2.0.dtd\""+">"+convert);
    			    			  //File fil = new File(chemin);
    			    			  output.flush();
    			    			  output.close();
    			    			  System.out.println(convert);
    			    		  } catch (IOException e) {
    							e.printStackTrace();
    			    		  }	
    			    		  System.out.println("Chemin fichier :" + fi.getAbsolutePath());
    			    	  }

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    J'essai d'utiliser un OutPutformat mais je n'y arrive pas !!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    for (File fi : files){
    			    		  try {
    			    			  content = Readfile.Readfilefich(fi);
    			    			  System.out.println(content);
    			    			  String chemin = fi.getAbsolutePath();
     
    			    			  Parse p = new Parse(content);
    			    			  convert = p.getXml();
    			    			  OutputFormat format = OutputFormat.createPrettyPrint();
    			    			  FileWriter fw = new FileWriter(chemin);
    			    			  BufferedWriter output = new BufferedWriter(fw);
     
    			    			  output.write("<!DOCTYPE beans PUBLIC "+"\"-//SPRING//DTD BEAN 2.0//EN\""
    		    					  +"\"http://www.springframework.org/dtd/spring-beans-2.0.dtd\""+">"+convert);
    			    			  //File fil = new File(chemin);
    			    			  output.flush();
    			    			  output.close();
    			    			  System.out.println(convert);
    			    		  } catch (IOException e) {
    							e.printStackTrace();
    			    		  }	
    			    		  System.out.println("Chemin fichier :" + fi.getAbsolutePath());
    			    	  }
    Je ne sais pas comment l'inclure dans mon écriture de fichier.....

  6. #6
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    convert est une variable de quel type?

    utiliser OutputFormat c'est bien, mais à part l'instancier, il faudrait peut etre voir à aussi l'utiliser

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    Oui c'est justement pour sa que je post... Parce que je n'arrive pas a l'utiliser correctement :/
    Parce que j'ai vu dans les tuto du site que OutPutformat était utiliser avec XMLwriter mais je n'arrive pas à l'utiliser avec ma façon de faire

    convert et de type String
    Merci de ton aide

  8. #8
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    si convert est un string, c'est au moment où tu crée cett string qu'il faut faire le formatage. Il se passe quoi là dedans??


  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    Pour parser mon document XML je l'ai tous d'abord convertie en String et le
    permet de reconvertir mon document en XML

  10. #10
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par tiph02 Voir le message
    permet de reconvertir mon document en XML
    C'est amusant ça, car t'as dit plus haut que convert et de type string et non pas de type Node ou Document, donc comme ça retourne une string et que c'est ta string qui est pas formatée comme tu veux, c'est là dedans qu'il faut aller chercher ton erreur.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    Merci de tes pistes....
    J'ai reussi a me depatouiller du problème
    Voici le nouveau code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(chemin), OutputFormat.createPrettyPrint());
     
    			    			  xmlWriter.write(convert);
    			    			  xmlWriter.flush();
    			    			  xmlWriter.close();
    			    			  System.out.println(convert);
    Mais nouveau probleme est qu'il me remplace les <> ... par des &lt; ....
    Ce qui est pas trop trop bien :o
    J'avais déjà aperçus des sujet pour se genre de problème mais je ne trouve plus :/

    Si tu peux une fois de plus me mettre sur la piste : D
    Merci!!!

  12. #12
    Expert éminent sénior
    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 : 45
    Localisation : Belgique

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    Citation Envoyé par tiph02 Voir le message
    xmlWriter.write(convert);
    Mais nouveau probleme est qu'il me remplace les <> ... par des &lt; ....
    Parce que tu lui demande d'écrire du texte dans ton xml plutot que de lui demander d'écrire un document xml. Tu dois utiliser la méthode write(Node) ou write(Document) et pas la méthode write(String). Je crois que tu confond fortement un arbre XML tel que manipulable en java et sa représentation sous forme de String. Les XmlWriter sont destiné à convertir un arbre ou une partie d'arbre en sa représentation texte (pour la mettre dans un fichier). Si t'as déjà une string et que tu veux la reformater, il faut faire les converstion string -> reader, produit un Document pui Document -> writer, produit du texte.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    D'accord donc en fait ce qui ne va pas c'est que dans ma classe qui parse mon document je lui fait retourner comme valeur
    Ce qui me retourne une String ...
    Je doit donc utiliser un autre moyen pour reconvertir mon XML si j'ai bien compris ??

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 164
    Points : 52
    Points
    52
    Par défaut
    C'est bon j'ai enfin appliqué ce que tu me dis depuis le début (ouf) et sa fonctionne....
    Merci
    Bonne journée : )

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

Discussions similaires

  1. [Toutes versions] Copier un fichier pour sauvegarde
    Par willou-78 dans le forum VBA Access
    Réponses: 5
    Dernier message: 05/08/2021, 08h30
  2. Réponses: 0
    Dernier message: 28/03/2012, 11h29
  3. lire nom de fichier pour sauvegarde ensuite sur presse papier
    Par chapeau_melon dans le forum VBScript
    Réponses: 3
    Dernier message: 21/03/2007, 20h35
  4. supprimer le fichier de sauvegarde xlk
    Par Australia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 20/02/2007, 12h13
  5. supprimer les fichiers qui ont des mêmes noms
    Par manaboko dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2006, 09h09

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