Witam,
Robię bazę filmów w Javie i chcę napisać metodę wyświetlającą wszystkie filmy w bazie. Zapis filmów do pliku zorganizowałem metodą 1 obiekt = 1 plik i teraz chcę wypisać na ekran wszystkie obiekty z folderu. Napisałem taką to metodę:
public static void listFilesForFolder(final File folder)throws IOException,ClassNotFoundException
{
for (final File fileEntry : folder.listFiles())
{
if (fileEntry.isDirectory())
{
listFilesForFolder(fileEntry);
}
else
{
ObjectInputStream pl2=null;
Filmy film = null;
try{
nazwaPL = fileEntry.getName();
pl2 = new ObjectInputStream(new FileInputStream("E:/JAVA/Wypożyczalnia flimów/Filmy/"+nazwaPL));
int l=1;
while(true)
{
film = (Filmy)pl2.readObject();
System.out.println("\nFilm " + l++);
film.odczyt();
}
}
catch (EOFException ex)
{
System.out.println("Koniec pliku");
}
finally
{
if(pl2!=null)
pl2.close();
}
}
}
A wywołuję ją tak:
f
inal File folder = new File("E:/JAVA/Wypożyczalnia flimów/Filmy");
Filmy.listFilesForFolder(folder);
I otrzymuję takie coś, gdy uruchamiam metodę:
Exception in thread "main" java.io.InvalidClassException: wypożyczalnia.flimów.Filmy; local class incompatible: stream classdesc serialVersionUID = -9206225985694600879, local class serialVersionUID = -4654643547799675711
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:604)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1348)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
at wypożyczalnia.flimów.Filmy.listFilesForFolder(Filmy.java:109)
at wypożyczalnia.flimów.WypożyczalniaFlimów.main(WypożyczalniaFlimów.java:56)
Java Result: 1
Proszę o pomoc i z góry dzięki :)