Java enregistrer un fichier txt
Fermé
gege.2007
Messages postés
25
Date d'inscription
vendredi 13 février 2015
Statut
Membre
Dernière intervention
14 décembre 2016
-
13 déc. 2016 à 18:24
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 17 déc. 2016 à 12:34
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 17 déc. 2016 à 12:34
A voir également:
- Java enregistrer un fichier txt
- Fichier rar - Guide
- Comment ouvrir un fichier epub ? - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Comment réduire la taille d'un fichier - Guide
- Audacity enregistrer son pc - Guide
2 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
13 déc. 2016 à 19:16
13 déc. 2016 à 19:16
Bonjour,
Pour comprendre ton exemple
À quoi servent b et 2236 ?
Pour comprendre ton exemple
b, 2236, 5, 6il faudrait récupérer l'élément
<lettre code="5"/>pour lui affecter la valeur
quantité= "6"?
À quoi servent b et 2236 ?
Salut, petit soucis c'est que le code en question ne modifie pas le fichier xml à partir des infos du fichier txt, j'ai essayé et ça ne fait que lire le fichier xml.
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
16 déc. 2016 à 18:40
16 déc. 2016 à 18:40
En effet, c'est d.ailleurs comme ça que j'ai présenté ce code, il permet de le lire, mais également d'extraire les bonnes valeurs au format XML ce qui permet de les modifier dans le DOM comme tu le souhaites avant d'écrire le nouveau contenu dans un fichier.
gege.2007
>
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
17 déc. 2016 à 10:21
17 déc. 2016 à 10:21
Ah d'accord j'avais pas compris, merci.
Par contre si cela ne te dérange pas pourrais-tu me mettre le code complet avec la DOM aussi, car je suis en train d'apprendre et j'aurais vraiment besoin d'un exemple de ce type. merci beaucoup
Par contre si cela ne te dérange pas pourrais-tu me mettre le code complet avec la DOM aussi, car je suis en train d'apprendre et j'aurais vraiment besoin d'un exemple de ce type. merci beaucoup
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
Modifié par KX le 17/12/2016 à 12:34
Modifié par KX le 17/12/2016 à 12:34
Des exemples tu en as dans la documentation :
https://docs.oracle.com/javase/tutorial/jaxp/xslt/writingDom.html
J'ai repris le code précédent pour remplacer l'affichage par des setNodeValue et j'ai ajouté à la fin l'enregistrement du fichier.
Le XML résultat est :
Il te reste bien sûr encore un peu de travail à faire pour remplacer les if que j'ai mis en dur dans le code par les modifications que tu as mis ligne par ligne dans ton fichier txt.
https://docs.oracle.com/javase/tutorial/jaxp/xslt/writingDom.html
J'ai repris le code précédent pour remplacer l'affichage par des setNodeValue et j'ai ajouté à la fin l'enregistrement du fichier.
import java.io.File; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import org.w3c.dom.*; public class XML { public static void main(String[] args) throws Exception { Document doc = DocumentBuilderFactory.newInstance() .newDocumentBuilder().parse("c:/personne.xml"); doc.getDocumentElement().normalize(); NodeList lettres = doc.getElementsByTagName("lettre"); for (int i = 0; i < lettres.getLength(); i++) { Element lettre = (Element) lettres.item(i); NamedNodeMap attributes = lettre.getAttributes(); Node code = attributes.getNamedItem("code"); Node quantite = attributes.getNamedItem("quantite"); if (code.getNodeValue().equals("3")) quantite.setNodeValue("3"); if (code.getNodeValue().equals("5")) quantite.setNodeValue("6"); } TransformerFactory.newInstance().newTransformer().transform( new DOMSource(doc), new StreamResult(new File("C:/personne2.xml"))); } }
Le XML résultat est :
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><personne> <lettre code="3" prix="5.00" quantite="3"/> <lettre code="5" prix="10.00" quantite="6"/> </personne>
Il te reste bien sûr encore un peu de travail à faire pour remplacer les if que j'ai mis en dur dans le code par les modifications que tu as mis ligne par ligne dans ton fichier txt.
Modifié par gege.2007 le 13/12/2016 à 21:06
Pour la lettre et 2236 ou 155 on peut le voir comme le nom d'une personne et son ID, par contre cela n'est pas pris en compte dans le fichier xml puisque l'on s’intéresse seulement au code de la lettre ici 3 ou 5, au prix qui est toujours le même 5.00 ou 10.00 et à la quantité qui est ce que l'on doit mettre à jour.
13 déc. 2016 à 21:47
Mais attention, pour Java, il est nécessaire que le XML soit bien formé, et pour cela il faudra enlever l'accent à sinon tu auras une erreur.
14 déc. 2016 à 00:20
Bonne soirée.