j'ai de gros problèmes pour stocker des objets en XML. Je ne connais que
très peu les beans, base pour pouvoir utiliser XMLEncoder, mais
apparemment ce que je fais n'est pas assez bon, XMLEncoder ne me
stockant pas l'objet que je veux sauvegarder.
Voici un bean que je pense avoir créé, puisque XMLEncoder ne traite que
des beans :
public class SimpleBean implements Serializable {
private String truc;
public String getTruc() {
return "coucou";
}
public void setTruc(String machin){
truc = machin;
}
public SimpleBean(){
}
}
Bon, je cherche à stocker une instance de SimpleBean dans un fichier en
XML, j'utilise la classe suivante avec un main :
public class TestText {
public static void main(String[] args) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream("Test.xml");
} catch (FileNotFoundException e1) {
e1.printStackTrace();
}
XMLEncoder e =
new XMLEncoder(newBufferedOutputStream(fos));
SimpleBean sb = new SimpleBean();
e.writeObject(new SimpleBean());
e.close();
D'autre part, je crois que la plupart des serializer XML n'écrivent pas les attributs s'ils ont leurs valeurs par défaut.
Au lieu de faire :
SimpleBean sb = new SimpleBean(); e.writeObject(new SimpleBean());
(ce qui déjà est illogique en soi : Tu instancies un premier bean, puis tu en serialize un second. Passons)
Essaye plutot d'écrire :
SimpleBean sb = new SimpleBean(); sb.setTruc("Autre valeur"); e.writeObject(sb);
A mon avis, ca marchera mieux
Bon courage
-- Orabîg
Vincent Hiribarren
In article <c4j15p$bu8$, says...
D'autre part, je crois que la plupart des serializer XML n'écrivent pas les attributs s'ils ont leurs valeurs par défaut.
Au lieu de faire :
SimpleBean sb = new SimpleBean(); e.writeObject(new SimpleBean());
(ce qui déjà est illogique en soi : Tu instancies un premier bean, puis tu en serialize un second. Passons)
C'est juste des rémanences de divers codes de tests. J'avais oublié de refaire ça un peu mieux avant de publier. Sinon vous aviez raison, c'était logique mais je n'y avais pas pensé : XMLEncoder n'écrit pas les valeurs par défauts.
In article <c4j15p$bu8$1@news.tiscali.fr>,
chauvet@benoit.echanger_nom_et_prenom.com says...
D'autre part, je crois que la plupart des serializer XML n'écrivent pas les
attributs s'ils ont leurs valeurs par défaut.
Au lieu de faire :
SimpleBean sb = new SimpleBean();
e.writeObject(new SimpleBean());
(ce qui déjà est illogique en soi : Tu instancies un premier bean, puis tu
en serialize un second. Passons)
C'est juste des rémanences de divers codes de tests. J'avais oublié de
refaire ça un peu mieux avant de publier.
Sinon vous aviez raison, c'était logique mais je n'y avais pas pensé :
XMLEncoder n'écrit pas les valeurs par défauts.
D'autre part, je crois que la plupart des serializer XML n'écrivent pas les attributs s'ils ont leurs valeurs par défaut.
Au lieu de faire :
SimpleBean sb = new SimpleBean(); e.writeObject(new SimpleBean());
(ce qui déjà est illogique en soi : Tu instancies un premier bean, puis tu en serialize un second. Passons)
C'est juste des rémanences de divers codes de tests. J'avais oublié de refaire ça un peu mieux avant de publier. Sinon vous aviez raison, c'était logique mais je n'y avais pas pensé : XMLEncoder n'écrit pas les valeurs par défauts.