Forum Informatica Unict

LAUREA TRIENNALE (D.M. 270/04) => Programmazione 2, 9 CFU => Topic started by: Dhavamba on 08-04-2009, 09:09:33



Title: Leggere file di oggetti
Post by: Dhavamba on 08-04-2009, 09:09:33
Volevo fare un programma che legesse dgli oggetti in un file finchè il file avesse gli oggetti, l'ho risolto ma non mi piace molto la soluzione (ho usato un array per semplificare, ma credo che in questo programma una lista linkata sarebbe più congeniale)

P.S: // questi commenti rappresentano il codice per creare il file dei due oggetti


Code:



import java.io.*;

class Studente implements Serializable{
private String matricola;
private int anno_iscrizione;
private int totale_CFU;
private String stato_iscrizione;
public Studente (String matricola, int anno_iscrizione, int totale_CFU, String stato_iscrizione) {
this.matricola = matricola;
this.anno_iscrizione = anno_iscrizione;
this. totale_CFU = totale_CFU;
this.stato_iscrizione = stato_iscrizione;
    }
public String toString() {
return "Studente matricola "+matricola+", anno di iscrizione "+anno_iscrizione+"; ha "+totale_CFU+" crediti ed è "+stato_iscrizione+".";
}   

}

class Prova_1 {
public static void main(String[] args) throws Exception {
//Studente s1 = new Studente("0123",1989,56,"In corso");
//Studente s2 = new Studente("0122",1987,78,"Ripetente");

//ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream("prova.txt", false));

//out.writeObject(s1);
//out.writeObject(s2);

//out.close();

ObjectInputStream in = new ObjectInputStream(new FileInputStream("prova.txt"));

Studente[] A = new Studente[4];
int i = 0;
try {
while (true) {
A[i] = (Studente)in.readObject();
i++;   } }
catch (EOFException ref) {
in.close();
}
System.out.println(A[1]);
}


}


La cosa che non mi piace del codice è che catturo l'eccezzione EOFException per far capire al while che non esistono più oggetti da leggere (infatti A[0] e A[1] hanno dei valori e A[2] e A[3] riportano null che è giusto teoricamente). La mia domanda non è esiste un'altro metodo anzi di catturare l'eccezzione???


Title: Re:Leggere file di oggetti
Post by: Dhavamba on 10-04-2009, 08:42:50
nessuno che mi sappia dare una risposta convincente?


Title: Re:Leggere file di oggetti
Post by: djjeck on 10-04-2009, 11:31:45
la tua risposta convincente si trova in http://forum.sdai.unict.it/index.php?topic=2032.msg16470#msg16470 (http://forum.sdai.unict.it/index.php?topic=2032.msg16470#msg16470)