Ciao a tutti!
Devo memorizzare in un file il contenuto di un programma che gestisce i libretti universitari.Premetto che il programma funziona benissimo da console,ora manca l'ultimo passo cioè la serializzazione.
Ho 4 classi:Esame,Libretto,Collezione ed infine il main.
Come ho detto in un altro post,Collezione è formata da un arraylist di libretti CHE A SUA VOLTA,è formato da un arraylist di esami.
Non sapendo bene usare la serializzazione,il programma mi lancia delle eccezioni
Nel main ho fatto cosi:import java.util.*;
e poi viene tutto quanto il malloppo di codice che si conclude con:codice:import java.io.*; public class Test { public static void main (String[]args) throws IOException,ClassNotFoundException { Scanner in = new Scanner(System.in); Collezione col; File f = new File("dati.dat"); if (f.exists()){ ObjectInputStream input = new ObjectInputStream(new FileInputStream(f)); col = (Collezione) input.readObject(); input.close(); } else { col = new Collezione(); }
Non so se ho fatto bene,ma le classi Collezione e Libretto le ho rese Serializable.Per far ciò nell'enunciato della classe ho scritto:codice:ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(f)); output.writeObject(col); output.close();
public class Libretto implements Serializable
public class Collezione implements Serializable
L'eccezione che il programma mi lancia è la seguente:codice:Exception in thread "main" java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: Collezione at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at Test.main(Test.java:11) Caused by: java.io.NotSerializableException: Collezione at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at Test.main(Test.java:325)

Rispondi quotando