Zapisywanie do pliku.

0

Witam.

Mam taki problem mam swoją listę dwukierunkową i chce ją zapisać do pliku, ale nie wiem czemu wywala mi błąd.

Tu metoda zapisu:

public void zapis(String nazwaBazyDanych){
        Element biezacy = poczatek;

        try{
            ObjectOutputStream zapis = new ObjectOutputStream(new FileOutputStream(nazwaBazyDanych));

            zapis.writeInt(rozmiarListy);
            while(biezacy!=null){
                zapis.writeObject(biezacy); // tu próbowałem jeszcze  
                biezacy=biezacy.wezNastepny(); //zapis.writeObject(biezacy.wezWartosc);
            }

            zapis.close();
        }
        catch(IOException e){
            System.out.print("Błąd zapisu.");
        }
    }

Do tego jak by było potrzeba pozostałych metod z których korzystam to wstawiam:

public Element wezNastepny(){
        return nastepny;
    }

public Element(Samochod auto, Element poprzedni, Element nastepny){ // konstruktor Element
        this.auto      = auto;
        this.poprzedni = poprzedni;
        this.nastepny   = nastepny;
    }

public Samochod wezWartosc(){
        return auto;
    }

public Samochod(int NR_SILNIKA, String marka, String typ, int dataProdukcji, // konstruktor aut
                    double cena, String kolor,int skladowanie,int przecena){

        this.NR_SILNIKA     = NR_SILNIKA;
        this.marka          = marka;
        this.typ            = typ;
        this.dataProdukcji  = dataProdukcji;
        this.cena           = cena;
        this.kolor          = kolor;
        this.skladowanie    = skladowanie;
        this.przecena       = przecena;

    }
0

JAKI BŁĄD. Zamiast głupiego komunikatu wypisz stacktrace...

0
java.io.NotSerializableException: Element
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at Lista.zapis(Lista.java:196)
    at Menu.menu(Menu.java:60)
    at Main.main(Main.java:10)
0

dodałem element

Element biezacy = poczatek;

do bloku try to teraz mam błąd :

java.io.NotSerializableException: Element
    at java.io.ObjectOutputStream.writeObject0(Unknown Source)
    at java.io.ObjectOutputStream.writeObject(Unknown Source)
    at Lista.zapis(Lista.java:197)
    at Menu.menu(Menu.java:60)
    at Main.main(Main.java:10)
0

No ale masz przecież odpowiedź. Klasa element (i każde jej nie-prymitywne i nie-transient i nie-statyczne pole) muszą implementować interfejs Serializable.

0

tak tak napisałem zanim pomyślałem :) ale dzięki bo gdyby nie ten "głupi komunikat" to bym nie wpadł co jest źle :)

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