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");
        }
È stato utile?

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
scroll top