Aujourd'hui, j'ai rencontré un comportement étrange dans la sérialisation et la désérialisation java ("étrange" parce que je ne comprends pas)Comment l'espace disque peut provoquer Java. io. EOFException
Je numérotais et désérialisait un objet à partir d'un répertoire partagé Linux. Tout en sérialisant tout fonctionnait sans aucun problème, mais quand j'ai essayé de désérialiser le même fichier, il lance java. io. EOFException
. De plus, la désérialisation n'échouait que pour ce fichier nouvellement créé et fonctionnait pour tous les autres anciens fichiers de ce répertoire.
J'ai donc cherché sur Internet et trouvé un fil qui dit que l'espace disque faible peut également être la cause de cette erreur.
J'ai donc nettoyé certains fichiers temporaires et tout a fonctionné. Je ne comprends pas comment l'espace disque faible peut seulement affecter la désérialisation et non la sérialisation? J'utilise apache commons SerializationUtils
class. Ci-dessous le code pour la sérialisation et la désérialisation
SerializationUtils. serialize(myObject, new FileOutputStream(new File(sharePath+FILEName) ;
MyObject object=SerializationUtils. deserialize(new FileInputStream(new File(sharePath+FILEName);
Il serait vraiment utile si quelqu'un peut expliquer ce comportement. Je pense que c'est un bug dans SerializationUtils peut-être engloutir IOException.
Merci
Il ne peut pas, sauf si vous avez ignoré une 'IOException 'préalable lors de * l'écriture * du fichier. – EJP
Comme je ne fais pas de sérialisation à la main, les exceptions IO sont gérées par SerializationUtils. C'est dans leur javadoc. –
Donc, c'est leur problème, ou leur mauvaise conception de l'API. – EJP