# xmlencoder Zustände einer Bean schreiben



## joe89 (24. Nov 2009)

Ich möchte in einer xml-Datei den jeweiligen Zustande einer bean schreiben.

Dazu habe ich mir eine einfache bean erstellt.


```
import java.io.Serializable;

public class Serialbean implements Serializable{
private String songtitle;
private String songpath;
private int songorder;

    public Serialbean()
    {}

	public void setTitle(String songtitle)
	{this.songtitle = songtitle;}
	
	public String getTitle()
	{return songtitle;}
	
	<...>
	}
}
```

Den jeweiligen Zustand dieser bean möchte ich mit XMLEncoder.writeObject(bean) in einer xml-Datei speichern. Bei einem Test stellt sich heraus, dass jeweils nur der erste Zustand gespeichert wird. Bei einer Veränderung trägt die o.g. Methode diese bean nicht nochmals ein. Was ist zu tun, damit ich diese bean beleibig oft mit XMLEncoder in einer xml-Datei speichern kann ?

Gruss
joe89


----------



## Wildcard (26. Nov 2009)

Wie schreibst du das raus?
Deine Klasse erfüllt übrigens nicht die Bean Conventions nach denen entweder das Feld title, oder die Methoden setSongTitle und getSongTitle heißen müssten.


----------



## joe89 (26. Nov 2009)

Ich erstelle eine neue Instanz des XMLencoders und schreibe die bean in die angegebene Datei.


```
/* Xmldecoder schreibt in xmldatei */
        <...>
        xmlencoder = 
        new XMLEncoder(new FileOutputStream(new File(xmlpath+xmlfilename+".xml")));

        xmlencoder.writeObject(serialbean);

        <..>
```
 
Falls diese bean über getTitle() einen neuen Song zugewiesen bekommt, soll der neue Inhalt der bean zusätzlich in die gleiche xml-Datei geschrieben werden. Dies funktioniert aber nicht.

Erstelle ich eine neue Instanz der bean und weise den neuen Song zu, klappt es wie gewünscht.

Gruss und Danke für deine Antwort
joe89


----------



## Wildcard (26. Nov 2009)

Bist du dir sicher das du die selbe Instanz des XMLEncoders nicht zweimal verwendest?


----------

