EOFException en Java lors de la lecture ObjectInputStream
-
22-09-2019 - |
Question
Je veux lire plusieurs objets (ma propre classe terme) que j'ai sortie vers un fichier .dat, mais je reçois toujours un nullPointException ou 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");
}
La solution
Voir la Javadoc. readObject()
ne retourne pas nulle à EOF. Il jette EOFException.
La seule façon qu'il peut retourner une valeur nulle est si vous avez écrit un nul à l'autre bout, et ce n'est pas nécessairement une bonne raison pour mettre fin à la boucle de lecture.
En bref votre code est erroné.
NB l'initialisation du 'o' est redondante.
NB (2) Le code affiché ne peut pas jeter NullPointerException,
à moins masterFile
est nulle. Est-ce un rapport sérieux ou juste une supposition?
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow