File serializzato

di il
1 risposte

File serializzato

Devo leggere oggetti memorizzati in un file di nome F.
Poichè la lettura deve essere fatta fino alla fine del file, chiedo se esiste qualche carattere di controllo che ne indichi la fine. Ho provato una struttura del genere

apertura di f in lettura.
while(!f){
lettura
}
Mi viene segnalato un errore su !, che dovrebbe indicare secondo le mie intenzioni : cicla fino a quando non si arrivato alla fine del file.
Una struttura funzionante, utilizzando try-catch, è la seguente
try{
FileInputStream r=new FileInputStream("anag.dat");
ObjectInputStream fr=new ObjectInputStream(r);
while (true){
try {
oanag=(anag)fr.readObject();
System.out.println(oanag.cogn+" "+oanag.nome);
}

catch(EOFException e)
{
break; //interrompe il ciclo
}
}
fr.close();
}
catch (Exception e){
System.out.println("Errore"+e.getMessage());
}
}
Poichè tale struttura è piuttosto complessa, vorrei utilizzare una più semplice. E' possibile? Grazie.

1 Risposte

  • Re: File serializzato

    Potresti fare
    
    try (ObjectInputStream fr=new ObjectInputStream(new FileInputStream("anag.dat")))
    {
       while ((oanag = (anag)fr.readObject()) != null)
           System.out.println(oanag.cogn+" "+oanag.nome);
    }
    catch (IOException e)
    {
        e.printStackTrace(System.out);
    }
    
Devi accedere o registrarti per scrivere nel forum
1 risposte