Serializacja. EOFException podczas wczytywania pliku

0

Dzień dobry,

Chciałbym wczytać dane z pliku do tablicy obiektów wykorzystując serializację. Robię coś takiego:

 ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(
                                                        new FileInputStream(path)));
            while (in.available() > -1){
                tab[i] = (nazwaKlasy) in.readObject();
                tab = Arrays.copyOf(tab,tab.length+1);
                i++;
            }
            in.close();

Powyższy sposób wyrzuca EOFException. Pomaga obsługa tego wyjątku, ale chciałbym się dowiedzieć, czy jest jakiś inny sposób żeby sobie z tym poradzić nie pakując tego kodu w blok try-catch?

1

Serializuj (i odczytuj) listę jako jeden obiekt.

0

Czy w deserializacji jako jeden obiekt chodzi o coś takiego:

  ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(
                                                        new FileInputStream(path)));
            tab = (nazwaKlasy) in.readObject();
            in.close();

a w serializacji takiego?

  ObjectOutputStream out;
            out.writeObject(tab);
0

W serializacji tak, w deserializacji nie. Przecież odczytasz tablicę, jak ja rzutować na konkretna klasę?

0

Czyli jeśli odczytujemy całą tablicę to nie możemy rzutować na konkretną klasę, więc nie rzutujemy na nic?

tab = in.readObject();

Coś takiego?

0

Niezupełnie

 tab = (SomeClass[]) in.readObject();

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