Ecriture dans un fichier texte

pheather Messages postés 15 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 28 novembre 2005 - 28 nov. 2005 à 10:21
MehdiD94 Messages postés 6 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 17 janvier 2006 - 30 nov. 2005 à 06:15
Bonjour a tous !



Voila juste une petite question, je dois créer un dictionnaire et donc
une methode qui sauvegarde mes mots (Objet mot = nom + definition) dans
un fichier texte, chose que je n'ai pas encore vu en cours. Donc
j'aimerai savoir ou orienté mes recherches ou quoi utiliser pour faire
ce qui m'est demandé.



Voici en clair ce qui m'est demandé:



.
sauvegarde des mots connus dans un fichier texte,




. ajout de mots dans un fichier
texte.



merci d'avance



@+

3 réponses

cs_ducheseb Messages postés 344 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 23 juin 2006 9
28 nov. 2005 à 10:38
Tu peux utiliser la classe java.io.FileWriter par exemple:

http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html' target='_blank'>http://http://java.sun.com/j2se/1.4.2/docs/api/java/io/FileWriter.html

"A game is a series of interesting choices." Sid Meier
0
indiana_jules Messages postés 750 Date d'inscription mardi 9 mars 2004 Statut Membre Dernière intervention 23 décembre 2008 22
28 nov. 2005 à 12:33
SAlut
tu peux aussi utiliser la notion de Properties qui crée un fichier avec un nom et lors de l'accés à ce nom, tu as une "traduction" : tu obtiens le texte associé à ce nom. Du coup, ce sera plus facile pour toi (cela évite de faire une lourde gestion)
voir exemple : http://www.javafr.com/code.aspx?ID=24744

Voilà

le monde a des idées : la preuve, c'est qu'il y en a de mauvaises
ne comprends pas tout, mais je parle de tout : c'est ce qui compte
0
MehdiD94 Messages postés 6 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 17 janvier 2006
30 nov. 2005 à 06:15
Voici un exemple sous forme de fichier texte simple (facile a realiser mais peut devenir difficile a reexploiter ensuite)

// Classe Dictionnaire
package dictionnaire;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.io.File;
import java.io.FileWriter;

public class Dictionnaire {

private List<Mot> dictionnaire;
/** Creates a new instance of Dictionnaire */
public Dictionnaire() {
dictionnaire = new ArrayList<Mot>();
}

public void AjouterMot(String nom, String definition) {
Mot m = new Mot(nom, definition);
AjouterMot(m);
}

public void AjouterMot(Mot m) {
dictionnaire.add(m);
}

public void SauverDictionnaire(String nomfichier) {
try {
File f = new File(nomfichier);
f.createNewFile();
FileWriter fw = new FileWriter(f);
for (Mot m:dictionnaire) {
fw.write("Nom: "+m.getNom()+"\n");
fw.write("Définition: "+m.getDefinition()+"\n");
}
fw.flush();
fw.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

// Classe Mot
package dictionnaire;

public class Mot {

private String nom;
private String definition;

public Mot(String nom, String definition) {
this.setNom(nom);
this.setDefinition(definition);
}

public String getNom() {
return nom;
}

public void setNom(String nom) {
this.nom = nom;
}

public String getDefinition() {
return definition;
}

public void setDefinition(String definition) {
this.definition = definition;
}
}

// Fichier principal
package dictionnaire;

public class Main {

public Main() {
}

public static void main(String[] args) {
Dictionnaire d = new Dictionnaire();
d.AjouterMot("Java", "Langage portable de programmation orientée objet");
d.AjouterMot("Classe", "Objet défini par des propriétés et des méthodes");
d.AjouterMot("Classe", "Groupe d'étudiants poursuivant un objectif commun");
d.SauverDictionnaire("C:\\dico.txt");
}
}

Sinon, tu peux faire la meme chose mais sauver ton dictionnaire au format XML a l'aide de la bibliotheque JDOM (www.jdom.org) qui est tres simple a utiliser...

Ton fichier texte XML ressemblerait alors a:
<DICTIONNAIRE>
<MOT>
<NOM> xxx </NOM>
<DEFINITION> xxx </DEFINITION>
</MOT>
etc...
<MOT>

<NOM> xxx </NOM>

<DEFINITION> xxx </DEFINITION>
</MOT>

</DICTIONNAIRE>

Une des differences est qu'il faudra que tu inclues l'API JDOM.jar (téléchargeable sur www.jdom.org) dans ton classpath et ta classe Dictionnaire sera la suivante:
// Class Dictionnaire (tu noteras que seule la méthode SauverDictionnaire change)
package dictionnaire;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.io.File;
import java.io.FileWriter;
import org.jdom.*;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;

public class Dictionnaire {

List<Mot> dictionnaire;
/** Creates a new instance of Dictionnaire */
public Dictionnaire() {
dictionnaire = new ArrayList<Mot>();
}

public void AjouterMot(String nom, String definition) {
Mot m = new Mot(nom, definition);
AjouterMot(m);
}

public void AjouterMot(Mot m) {
dictionnaire.add(m);
}

public void SauverDictionnaire(String nomfichier) throws IOException {
Element rootElement = new Element("DICTIONNAIRE");
for (Mot m:dictionnaire) {
Element mot = new Element("MOT");
Element nom = new Element("NOM");
nom.setText(m.getNom());
Element definition = new Element("DEFINITION");
definition.setText(m.getDefinition());
mot.addContent(nom);
mot.addContent(definition);
rootElement.addContent(mot);
}
Document dictionnaireXML = new Document(rootElement);
File f = new File(nomfichier);
f.createNewFile();
FileWriter fw = new FileWriter(f);
XMLOutputter output = new XMLOutputter(Format.getPrettyFormat());
output.output(dictionnaireXML, fw);
fw.flush();
fw.close();
}
}

En espérant que cela t'auras aidé à progresser...

A bientot,
Mehdi
0
Rejoignez-nous