Zapis i Odczyt ArrayList->ArrayList do pliku bin lub txt

0

Mam pytanie w jaki sposób można by było zapisać Obiekt obiektów używając ArrayList ?

Dla większego zrozumienia :

 class Mala {

...

}
 class Duza implements Serializable{

       ArrayList <Mala> tablica = null;

}

W Main :

 public static void main(String[] args) { 
      ArrayList <Duza> duzaTablica = new  ArrayList<Duza>();

     

Problem pojawia się w momencie zapisu i odczytu tej dużej tablicy (duzaTablica) do/z pliku binarnego

       

       FileOutputStream fos = new FileOutputStream("t.tmp");
       ObjectOutputStream oos = new ObjectOutputStream(fos);
       oos.writeObject(duzaTablica);
       oos.close();                            
       
       
       FileInputStream fis = new FileInputStream("t.tmp");
       ObjectInputStream ois = new ObjectInputStream(fis);
       duzaTablica = (ArrayList<Duza>) ois.readObject();
       ois.close();

Błędy wyjściowe :

Exception in thread "main" java.io.NotSerializableException: Model.Part
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)...
i tak dalej lista się ciągnie w nieskończoność

A i chciałbym podkreślić że nie mam problemu z zapisem i odczytem ArrayListy pojedynczej class-y

Za jakiekolwiek wskazówki będę niezmiernie wdzięczny

Link do całego projektu (netBeans)

https://drive.google.com/file/d/0B3P209lmaT2mYTg0bDk3b3JoeVE/edit?usp=sharing

0

Komunikat jest jednoznaczny, klasa Part nie implementuje interfejsu Serializable. Ten interfejs muszą implementowac wszystkie klasy, które umieszczasz w kolekcji duzaTablica.

0
bogdans napisał(a):

Komunikat jest jednoznaczny, klasa Part nie implementuje interfejsu Serializable. Ten interfejs muszą implementowac wszystkie klasy, które umieszczasz w kolekcji duzaTablica.

Rzeczywiście masz rację. Aż trochę mi wstyd :|

Wszystko ładnie śmiga tylko że Duża klasa jest rozszerzeniem classy abstrakcyjnej i są tam dwa pola prywatne które z nie wiadomych przyczyn nie są uzupełnianie :/

No nic trzeba szukać

0
 class Duza implements Serializable{
 
       ArrayList <Mala> tablica = null;
 
}

To nie ma wielkiego sensu. Możesz zserializować klasę arraylist bez najmniejszego problemu (nic nie musisz implementować).

0
niezalogowany napisał(a):
 class Duza implements Serializable{
 
       ArrayList <Mala> tablica = null;
 
}

To nie ma wielkiego sensu. Możesz zserializować klasę arraylist bez najmniejszego problemu (nic nie musisz implementować).

Zaraz poszukam

Wcześniejszy błąd też został naprawiony. Wystarczyło zSerlializować class abstrakcyjną. Ale bardziej zadowala mnie twój pomysł z zSrlializowaniem ArrayList

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