pheather
Messages postés15Date d'inscriptionmardi 25 mai 2004StatutMembreDernière intervention28 novembre 2005
-
28 nov. 2005 à 10:21
MehdiD94
Messages postés6Date d'inscriptiondimanche 5 octobre 2003StatutMembreDernière intervention17 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,
indiana_jules
Messages postés750Date d'inscriptionmardi 9 mars 2004StatutMembreDernière intervention23 décembre 200822 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
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;
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();
}
}