XMLEncoder nic nie zapisuje

0

Mam taki kawałek kodu:

    public static void saveFile(File file) {
        try {
            XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(file)));
            for (Node node : Var.LISTS_NODE.get(0)) {
                encoder.writeObject(node);
            }
            encoder.close();
        } catch (FileNotFoundException ex) {
            Logger.getLogger(Utils.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Klasa Node wygląda mniej więcej tak:

public class Node implements Serializable {

    public int wartosc;
    private BufferedImage bufferedImage;

    public Node(int wartosc, Node rodzic) {
        this.wartosc = wartosc;
    }

    public int getWartosc() {
        return wartosc;
    }

    public void setWartosc(int wartosc) {
        this.wartosc = wartosc;
    }
...
}

W pliku znajduję się tylko to:

<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.6.0_23" class="java.beans.XMLDecoder"> 
</java>

Linia:
encoder.writeObject();
wykonuje się kilkakrotnie, sprawdzałem przy debugowaniu, obiekt zawiera wartości?

co może być nie tak?

1

Spróbuj do klasy Node dodać konstruktor bezparametrowy.

0

Zadziałało.

Nie wiem, po co ten konstruktor ale ważne, że działa.

Mam jeszcze inne pytanie:

    • mianowicie chce zapisać kilka obiektów różnych klas, więc pokolei sobie je dopisuje 'writeObject(...)' ale jak je się odczytuje, czy wystarczy odczyt taki sam, pokolei 'readObject(...)' klasa Decoder. Czy taki sposób będzie działać prawidłowo ?
    • co z obiektami, które mają referencja do innych obiektów tej samej klasy ?
      w tej chwili po zapisaniu obiektu, głównego metoda 'writeObject(...)' zapisuje mi główny obiekt, który zawiera w sobie (w xml) pod obiekty tej samej klasy, to mi w niczym nie przeszkadza.
      Ale jak zrobić wczytywanie takich obiektów, czy przy wczytaniu metoda 'readObject' sama mi utworzy te obiekty?
0
  1. Wiesz co to jest JavaBean i czym się charakteryzuje?
  2. Zajrzyj tu http://java.sun.com/products/jfc/tsc/articles/persistence3/.

1 użytkowników online, w tym zalogowanych: 0, gości: 1