Besoin d'aide sérialisation java
Résolu/Fermé
Lokez
Messages postés
13
Date d'inscription
vendredi 31 octobre 2014
Statut
Membre
Dernière intervention
3 décembre 2014
-
Modifié par jordane45 le 2/12/2014 à 19:30
Lokez Messages postés 13 Date d'inscription vendredi 31 octobre 2014 Statut Membre Dernière intervention 3 décembre 2014 - 3 déc. 2014 à 18:24
Lokez Messages postés 13 Date d'inscription vendredi 31 octobre 2014 Statut Membre Dernière intervention 3 décembre 2014 - 3 déc. 2014 à 18:24
A voir également:
- Besoin d'aide sérialisation java
- 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
- Télécharger jeux java gameloft gratuit - Forum Mobile
- Java décompiler - Télécharger - Langages
2 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 2/12/2014 à 23:14
Modifié par KX le 2/12/2014 à 23:14
Bonjour,
"Celui-ci compile bien"
Étonnant, comment ton catch pourrait-il fonctionner sans try ?
Si tu as une exception le plus intéressant est de savoir ce que c'est. "erreur1" ce n'est pas suffisant, fait un e.printStackTrace() plutôt, et indiques nous l'erreur.
Ton paramètre ne sert à rien, tu ne vas pas pouvoir modifier l'objet qui est passé en paramètre, ce qu'il te faut c'est une méthode qui retourne l'objet désérialisé, comme un getteur :
Remarque : il serait logique de passer les fichier à lire ou écrire en paramètre de la méthode,
Pourquoi avoir deux noms de fichiers différents ? J'imagine que le but est pourtant de désérialiser ce que tu as sérialisé au départ, non ? Donc il faudrait les deux même fichiers.
Remarque : par convention, l'extension d'un fichier pour les objets sérialisés est .ser
Remarque : par convention toujours, on n'utilise que des lettres anglaises dans les noms en Java, et généralement des noms en anglais, donc
La confiance n'exclut pas le contrôle
"Celui-ci compile bien"
Étonnant, comment ton catch pourrait-il fonctionner sans try ?
System.out.println("erreur1"):
Si tu as une exception le plus intéressant est de savoir ce que c'est. "erreur1" ce n'est pas suffisant, fait un e.printStackTrace() plutôt, et indiques nous l'erreur.
void désérialisation(Objet a):
Ton paramètre ne sert à rien, tu ne vas pas pouvoir modifier l'objet qui est passé en paramètre, ce qu'il te faut c'est une méthode qui retourne l'objet désérialisé, comme un getteur :
Objet désérialisation()...
Remarque : il serait logique de passer les fichier à lire ou écrire en paramètre de la méthode,
Objet désérialisation(File file)par exemple.
new File("sav.txt"),
new FileInputStream("monFichier.sav"):
Pourquoi avoir deux noms de fichiers différents ? J'imagine que le but est pourtant de désérialiser ce que tu as sérialisé au départ, non ? Donc il faudrait les deux même fichiers.
Remarque : par convention, l'extension d'un fichier pour les objets sérialisés est .ser
Remarque : par convention toujours, on n'utilise que des lettres anglaises dans les noms en Java, et généralement des noms en anglais, donc
void serialization(File ser, Serializable obj)et
Serializable deserialization(File ser)...
La confiance n'exclut pas le contrôle
Lokez
Messages postés
13
Date d'inscription
vendredi 31 octobre 2014
Statut
Membre
Dernière intervention
3 décembre 2014
1
3 déc. 2014 à 00:19
3 déc. 2014 à 00:19
Salut, merci pour ton aide.
J'ai rajouter le catch qui manque et j'ai changé le nom des dossier.
L'erreur est au même endroit et après avoir mis ce que tu m'as dit ça affiche :
java.io.NotSerializableException: Interface
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at Interface.sérialisation(Interface.java:407)
at Interface.main(Interface.java:373)
où Interface c'est le nom de ma classe .
A la ligne 373 je fais appel à la méthode sérialisation.
La ligne 407 c'est out.writeObject(a); de ma méthode sérialisation.
J'ai rajouter le catch qui manque et j'ai changé le nom des dossier.
L'erreur est au même endroit et après avoir mis ce que tu m'as dit ça affiche :
java.io.NotSerializableException: Interface
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1183)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:347)
at Interface.sérialisation(Interface.java:407)
at Interface.main(Interface.java:373)
où Interface c'est le nom de ma classe .
A la ligne 373 je fais appel à la méthode sérialisation.
La ligne 407 c'est out.writeObject(a); de ma méthode sérialisation.
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
3 déc. 2014 à 07:48
3 déc. 2014 à 07:48
Vu le message d'erreur une question se pose : est-ce que ta classe Interface est sérialisable ?
Remarque : appeler une classe "Interface" est assez déconcertant...
Pour être sérialisable une classe doit :
1) implémenter l'interface Serializable
ET 2a) avoir tous ses arguments Serializable ou transient
OU 2b) redéfinir les trois méthodes de l'interface Serializable
Remarque : appeler une classe "Interface" est assez déconcertant...
Pour être sérialisable une classe doit :
1) implémenter l'interface Serializable
ET 2a) avoir tous ses arguments Serializable ou transient
OU 2b) redéfinir les trois méthodes de l'interface Serializable
Lokez
Messages postés
13
Date d'inscription
vendredi 31 octobre 2014
Statut
Membre
Dernière intervention
3 décembre 2014
1
3 déc. 2014 à 18:24
3 déc. 2014 à 18:24
En fait la classe Interface c'est ma classe Test mais j'ai fais en sorte qu'elle permette de tester toutes les fonctionnalités des autres classes depuis la boite de commande (cf mon autre message sur le forum auquel tu as répondu).
Mais merci, c'était bien ça le problème, je n'avais pas implémenter l'interface Serializable dans toutes les classes qui sont liées avec celle que j'essaie de sérialiser.
Mais merci, c'était bien ça le problème, je n'avais pas implémenter l'interface Serializable dans toutes les classes qui sont liées avec celle que j'essaie de sérialiser.