Zapisywanie obiektu List do pliku

0

Witam,

Tworzę prostą listę jak poniżej:

String[] names = {"Ola", "Ala", "Ela", "Ewa", "Jan"};
int[] numbers = {3, 4, 5, 6, 7, 8};   
List<Obiekt> objList = new ArrayList<Obiekt>();
for(int i = 0; i < names.length; i++){
       objList.add(new Obiekt(names[i], numbers[i]));
}

Następnie chciałbym ją zapisać do pliku. Do tej pory (dla "zwykłych" obiektów) robiłem to za pomocą ObjectOutputStream i nie było żadnego problemu. Napisałem więc taką samą metodę dla mojego obiektu:

public boolean write(List lk){
        try{
            ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("ksiazki.data"));
            out.writeObject(lk);
            out.close();
            return true;
        }catch (IOException e){
            e.printStackTrace();
            return false;   
        }
    }

Niestety wywala błąd:

java.io.NotSerializableException: kontener.Obiekt
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at java.util.ArrayList.writeObject(ArrayList.java:570)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
false
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
        at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
        at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
        at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
        at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
        at kontener.ReadWrite.write(ReadWrite.java:11)
        at kontener.Main.main(Main.java:41)

Czy ktoś może mi pomóc i powiedzieć co robię źle, ewentualnie podać sposób na zapisanie tego obiektu do listy.

Z góry dziękuję.

0

Sorry za zamieszanie. Problem polegał na tym, że mój Obiekt nie implementował interfejsu Serializable. Wszystko już działa.

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