Bonjour à tous.
Je cherche à lire une table de hachage précédemment écrite dans un fichier.
Problème: A la lecture du fichier, la fonction readObject() est bloquante.
Mais elle est bloquante uniquement lorsque mon objet valeur de ma table de hachage est de type Contact(), qui est une classe que j'ai créée. Si l'objet valeur est de type String par exemple, alors cela ne pose aucun problème.
Un peu de code:
Voilà la classe dont je me sers pour écrire ma table de hachage dans le fichier et pour la récupérer.
Ma classe Contact est constituée uniquement d'attributs de type String avec des accesseurs et modifieurs.
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
24
25
26
27
28
29
30
31 public class Fichier { public void ecrireObjet(String nom, Hashtable o) throws IOException{ ObjectOutputStream ois = null; FileOutputStream fos = null; fos = new FileOutputStream(nom + ".dat"); ois = new ObjectOutputStream(fos); ois.writeObject(o); ois.close(); fos.close(); } public Hashtable lireObjet(String myName) throws IOException{ ObjectInputStream in = null; Hashtable h = null; FileInputStream fis = null; fis = new FileInputStream(myName + ".dat"); in = new ObjectInputStream(fis); try{ System.out.println("Before " + myName); h = (Hashtable) in.readObject(); System.out.println("After " +myName); } catch (ClassNotFoundException cnfe){ } in.close(); fis.close(); return h; } }
Ainsi, le "Before" est imprimé en console tandis que ce n'est pas le cas de l' "after".
Merci de votre aide.
Dest.
Partager