J'ai une méthode dans mon programme qui lit à partir d'un fichier et j'ai associé à la fois une variable FileInputStream et une variable ObjectInputStream. Cependant, je ne sais pas combien d'objets seront sérialisés dans le fichier lorsque j'exécuterai le programme, donc je ne connais pas le nombre d'objets à désérialiser en utilisant la méthode readObject(). Ceci est la méthode de mon projet:Problème avec la désérialisation
public void importResults(File file) throws FileNotFoundException, IOException, ClassNotFoundException {
TestEntry entry = null;
try(FileInputStream fis = new FileInputStream(file)) {
ObjectInputStream ois = new ObjectInputStream(fis);
tests.clear();
entry = (TestEntry)ois.readObject();
tests.add(entry);
ois.close();
}
}
L'entrée variable est où je vais stocker TestEntry objets que je deserialize à partir du fichier. Le problème est que, si j'essaie de désérialiser trop d'objets, j'obtiens une exception EOFException. Comment puis-je obtenir mon programme pour déterminer combien d'objets sont sérialisés dans le fichier afin que je puisse désérialiser le bon montant? Toute aide est la bienvenue! Je vous remercie.
Pouvez-vous publier la trace de pile pour l'exception que vous obtenez? –
Juste attraper EOFException de readObject – krzydyn