Stocker des donneés dans une Hashtable java!
Résolu/Fermé
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
-
31 mars 2008 à 22:46
mokh7 Messages postés 31 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 4 mai 2009 - 3 avril 2008 à 21:28
mokh7 Messages postés 31 Date d'inscription dimanche 10 février 2008 Statut Membre Dernière intervention 4 mai 2009 - 3 avril 2008 à 21:28
A voir également:
- Stocker des donneés dans une Hashtable java!
- Fuite données maif - Guide
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Trier des données excel - Guide
5 réponses
Godboss
Messages postés
69
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
18 juin 2009
18
1 avril 2008 à 01:05
1 avril 2008 à 01:05
Bonjour,
tu veut dire que kan le programme s'arrete et que tu relance ton programme ta HashTable est vide?? Et bien ..... c normal une fois le programme arrêté toutes tes variables sont perdues. Le seul moyen et de sauvegarder ta Hastable dans un fichier.
Sinon dans ton code tu n'a pas besoin d'avoir deux new Scanner, juste scan1 suffit, puis pour ta HashTable tu peux utilisé la généricité après je ne sais pas si tu l'a déja vu en cour.
tu veut dire que kan le programme s'arrete et que tu relance ton programme ta HashTable est vide?? Et bien ..... c normal une fois le programme arrêté toutes tes variables sont perdues. Le seul moyen et de sauvegarder ta Hastable dans un fichier.
Sinon dans ton code tu n'a pas besoin d'avoir deux new Scanner, juste scan1 suffit, puis pour ta HashTable tu peux utilisé la généricité après je ne sais pas si tu l'a déja vu en cour.
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
1 avril 2008 à 03:47
1 avril 2008 à 03:47
en faite j'ai réussi à stocker les données que je saisis dans un fichier!mais le probléme reste le meme certe les données restent dans le fichier mais pas dans la hash table!
class T
{
Hashtable m;
public void chargerhash(String n,String p)
{
m=new Hashtable();
m.put(n,p);
}
public void affichhash()
{
Enumeration tar=m.keys();
System.out.println("le contenu de ton Htable:");
while (tar.hasMoreElements( ))
{
Object key = tar.nextElement( );
Object value = m.get(key);
System.out.println("le nom: "+key+"\nle prenom: "+value);
}
}
public static void main(String a[]) throws IOException
{
T myt=new T();
Scanner scan=new Scanner(System.in);
System.out.println("donnez le nom du client");
String nom=scan.nextLine();
System.out.println("donnez le prenom du client");
String prenom=scan.nextLine();
mytp.chargerhash(nom,prenom);
mytp.affichhash();
Fich monfich=new Fich();
monfich.saveinfich(nom);
monfich.saveinfich(prenom);
Affichfich ref=new Affichfich();
ref.lirefichier();
}
}
bien sur le code ci dessus n'est qu'une simulation!
class T
{
Hashtable m;
public void chargerhash(String n,String p)
{
m=new Hashtable();
m.put(n,p);
}
public void affichhash()
{
Enumeration tar=m.keys();
System.out.println("le contenu de ton Htable:");
while (tar.hasMoreElements( ))
{
Object key = tar.nextElement( );
Object value = m.get(key);
System.out.println("le nom: "+key+"\nle prenom: "+value);
}
}
public static void main(String a[]) throws IOException
{
T myt=new T();
Scanner scan=new Scanner(System.in);
System.out.println("donnez le nom du client");
String nom=scan.nextLine();
System.out.println("donnez le prenom du client");
String prenom=scan.nextLine();
mytp.chargerhash(nom,prenom);
mytp.affichhash();
Fich monfich=new Fich();
monfich.saveinfich(nom);
monfich.saveinfich(prenom);
Affichfich ref=new Affichfich();
ref.lirefichier();
}
}
bien sur le code ci dessus n'est qu'une simulation!
Godboss
Messages postés
69
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
18 juin 2009
18
2 avril 2008 à 00:14
2 avril 2008 à 00:14
Voici le code que j'ai fait rapidement je t'ai rajouté le construcuteur c plus propre, je n'ai pas mi de généricité, si tu veu que je te la mette redit moi ya pas grand chose à changer, et si tu ne comprend pas ce que j'ai fait di le moi aussi
import java.util.*;
import java.io.*;
class T {
private Hashtable m;
public T(){
m=new Hashtable();
}
public void chargerhash(String n,String p){
m=new Hashtable();
m.put(n,p);
}
public void affichhash(){
Enumeration tar=m.keys();
System.out.println("le contenu de ton Htable:");
while (tar.hasMoreElements( )){
Object key = tar.nextElement( );
Object value = m.get(key);
System.out.println("le nom: "+key+"\nle prenom: "+value);
}
}
public void sauvegarder(){
try{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("hashtable.txt"));
oos.writeObject(this.m);
oos.close();
}catch(IOException e){
System.out.println("Problème de sauvegarde");
e.printStackTrace();
}
}
public void charger(){
try{
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("hashtable.txt"));
this.m=(Hashtable)(ois.readObject());
ois.close();
}catch(Exception e){
}
}
public static void main(String a[]) throws IOException {
T mytp=new T();
Scanner scan=new Scanner(System.in);
System.out.println("donnez le nom du client");
String nom=scan.nextLine();
System.out.println("donnez le prenom du client");
String prenom=scan.nextLine();
mytp.chargerhash(nom,prenom);
mytp.affichhash();
mytp.sauvegarder();
T mytp2=new T();
mytp2.charger();
System.out.println("Contenu de la HTable après chargement");
mytp2.affichhash();
}
}
import java.util.*;
import java.io.*;
class T {
private Hashtable m;
public T(){
m=new Hashtable();
}
public void chargerhash(String n,String p){
m=new Hashtable();
m.put(n,p);
}
public void affichhash(){
Enumeration tar=m.keys();
System.out.println("le contenu de ton Htable:");
while (tar.hasMoreElements( )){
Object key = tar.nextElement( );
Object value = m.get(key);
System.out.println("le nom: "+key+"\nle prenom: "+value);
}
}
public void sauvegarder(){
try{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("hashtable.txt"));
oos.writeObject(this.m);
oos.close();
}catch(IOException e){
System.out.println("Problème de sauvegarde");
e.printStackTrace();
}
}
public void charger(){
try{
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("hashtable.txt"));
this.m=(Hashtable)(ois.readObject());
ois.close();
}catch(Exception e){
}
}
public static void main(String a[]) throws IOException {
T mytp=new T();
Scanner scan=new Scanner(System.in);
System.out.println("donnez le nom du client");
String nom=scan.nextLine();
System.out.println("donnez le prenom du client");
String prenom=scan.nextLine();
mytp.chargerhash(nom,prenom);
mytp.affichhash();
mytp.sauvegarder();
T mytp2=new T();
mytp2.charger();
System.out.println("Contenu de la HTable après chargement");
mytp2.affichhash();
}
}
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2 avril 2008 à 21:18
2 avril 2008 à 21:18
merci pour ton aide!!je vais pas faire de tros!mais je voulais savoir stp pourqu'oi est ce que t'as mis la référence this dans la méthode saugerder():oos.writeObject(this.m)
et puis dans la méthode charger() cette instruction qu'est ce qu'ele va effectuer exactemen:this.m=(Hashtable)(ois.readObject());
merci encor!!!!
et puis dans la méthode charger() cette instruction qu'est ce qu'ele va effectuer exactemen:this.m=(Hashtable)(ois.readObject());
merci encor!!!!
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
2 avril 2008 à 21:25
2 avril 2008 à 21:25
merci pour ton aide!!je vais pas faire de tros!mais je voulais savoir stp pourqu'oi est ce que t'as mis la référence this dans la méthode saugerder():oos.writeObject(this.m)
et puis dans la méthode charger() cette instruction qu'est ce qu'ele va effectuer exactemen:this.m=(Hashtable)(ois.readObject());
sinon j'ai essayé de faire les deux méthode,bon ça compile mais je ne sais si c'est bon à faire ou non:
public void saveinfich(String s) throws IOException
{
FileWriter monfichier=new FileWriter("mokh.txt",true);
BufferedWriter bof=new BufferedWriter(monfichier);
monfichier.write(s);
bof.newLine();
bof.flush();
monfichier.close();
bof.close();
}
et :
public void load() throws Exception
{
Hashtable m=new Hashtable();
FileReader monfichier=new FileReader("mok.txt");
BufferedReader bof=new BufferedReader(monfichier);
while((l=bof.readLine()) != null)
{
r=bof.readLine();
mokh.put(l,r);
}
merci encor!!!!
et puis dans la méthode charger() cette instruction qu'est ce qu'ele va effectuer exactemen:this.m=(Hashtable)(ois.readObject());
sinon j'ai essayé de faire les deux méthode,bon ça compile mais je ne sais si c'est bon à faire ou non:
public void saveinfich(String s) throws IOException
{
FileWriter monfichier=new FileWriter("mokh.txt",true);
BufferedWriter bof=new BufferedWriter(monfichier);
monfichier.write(s);
bof.newLine();
bof.flush();
monfichier.close();
bof.close();
}
et :
public void load() throws Exception
{
Hashtable m=new Hashtable();
FileReader monfichier=new FileReader("mok.txt");
BufferedReader bof=new BufferedReader(monfichier);
while((l=bof.readLine()) != null)
{
r=bof.readLine();
mokh.put(l,r);
}
merci encor!!!!
Godboss
Messages postés
69
Date d'inscription
lundi 4 février 2008
Statut
Membre
Dernière intervention
18 juin 2009
18
3 avril 2008 à 00:16
3 avril 2008 à 00:16
Ben le mot clé this tu n'est pas obligé de le metre c'est juste dire que c'est un attribut de classe de l'objet qui va execué la méthode, mais tu peu l'enlevé si tu veu sa nechangera rien.
Pour l'instruction: this.m=(Hashtable)(ois.readObject());
la méthod readObject va lire l'objet que tu as sauvegarder dans le fichier.
Cependant la méthode retourne un objet Object (c la classe la plus haute qui existe pour java, toutes les classe hérite de celle si), donc tu est obligé de caster cet objet (je ne sais pas si tu as déjà vu le cast). En fait vu que tu c ke l'objet est une Hashtable tu rajoute (Hashtable) pour forcer l'objet retourné par ois.readObject() à etre un objet HashTable.
Pour tes solutions, ben si sa marche c bon, de toutes façon ya plusieurs solutions, c toi ki voit:lol
Pour l'instruction: this.m=(Hashtable)(ois.readObject());
la méthod readObject va lire l'objet que tu as sauvegarder dans le fichier.
Cependant la méthode retourne un objet Object (c la classe la plus haute qui existe pour java, toutes les classe hérite de celle si), donc tu est obligé de caster cet objet (je ne sais pas si tu as déjà vu le cast). En fait vu que tu c ke l'objet est une Hashtable tu rajoute (Hashtable) pour forcer l'objet retourné par ois.readObject() à etre un objet HashTable.
Pour tes solutions, ben si sa marche c bon, de toutes façon ya plusieurs solutions, c toi ki voit:lol
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mokh7
Messages postés
31
Date d'inscription
dimanche 10 février 2008
Statut
Membre
Dernière intervention
4 mai 2009
3 avril 2008 à 21:28
3 avril 2008 à 21:28
bon vraiment merci à toi Godboss!!tes conseilles m'ont beaucoup aidés!
à bientot
à bientot
1 avril 2008 à 02:11
Scanner scan=new Scanner(System.in);
System.out.println("donnez le nom du client");
String nom=scan.nextLine();
System.out.println("donnez le prenom du client");
String prenom=scan.nextLine();
Hashtable m=new Hashtable();
m.put(nom,prenom);
Enumeration tar=m.keys();
while (tar.hasMoreElements( ))
{
Object key = tar.nextElement( );
Object value = m.get(key);
System.out.println("le nom: "+key+"\nle prenom: "+value);
}