EOFException in Java durante la lettura ObjectInputStream
-
22-09-2019 - |
Domanda
voglio leggere più oggetti (mia classe legislatura) che ho output in un file .dat, ma ottengo sempre un nullPointException o EOFException.
ObjectInputStream inputStream = new ObjectInputStream(new FileInputStream(masterFile));
Object o = null;
while(( o = inputStream.readObject()) != null){
Term t = (Term)o;
System.out.println("I found a term");
}
Soluzione
Vedere la Javadoc. readObject()
non restituisce null alla EOF. Si getta EOFException.
L'unico modo in cui può restituire un null è se hai scritto un null all'altra estremità, e che non è necessariamente una buona ragione per terminare il ciclo di lettura.
In breve il codice è sbagliato.
NB l'inizializzazione di 'o' è ridondante.
NB (2) Il codice che hai postato non può gettare NullPointerException,
a meno masterFile
è nullo. È un rapporto serio o solo una supposizione?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow