Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33

    Problemi con la serializzazione

    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.*;


    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();
    		}
    e poi viene tutto quanto il malloppo di codice che si conclude con:
    codice:
    ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(f));
    		output.writeObject(col);
    		output.close();
    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:
    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)

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33
    Non sono ancora riuscito a risolvere purtroppo.
    Nono ho capito se ho sbagliato oppure se devo gestire le eccezioni!


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    33
    Ragazzi ho risolto!
    Post la soluzione cosi se qualcuno avrà certi problemi in futuro sa come fare.

    Non ho fatto nulla di sbagliato,l'unica cosa che mi ero dimenticato di fare era assegnare l'interfaccia anche alla classe Esame.
    In sostanza,quando si usa la serializzazione bisogna associare ad ogni classe coinvolta nel processo di serializzazione,l'enunciato del tipo:

    public class Esame implements Serializable
    {
    ...
    ...
    }

    Ciao a tutti!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.