ObjectInputStream EOFException

ObjectInputStream EOFException - Java - Programmation

Marsh Posté le 22-12-2004 à 14:26:12    

Bonjour,
 
J'utilise les ObjectInputStream  pour sauver puis restaure mes objets dans des ficheirs.  
Tout fonctionne bien sauf à partir la 4eme lecture du fichier j ai une EOFException. Pourtant, je referme bien après chaque lecture...  
 
D avance merci :bounce:  
Ben
 
Voici mon code:

Code :
  1. public static CerveauImpl restaurerCerveau() {
  2.   CerveauImpl inobject = null;
  3.   try {
  4.     FileInputStream fos = new FileInputStream("cerveau.dat" );
  5.     ObjectInputStream ois = new ObjectInputStream(fos);
  6.     inobject = (CerveauImpl) ois.readObject();
  7.     ois.close();
  8.   } catch (FileNotFoundException e) {
  9.     e.printStackTrace();
  10.   } catch (IOException e) {
  11.     e.printStackTrace();
  12.   } catch (ClassNotFoundException e) {
  13.     e.printStackTrace();
  14.   }
  15.   return inobject;
  16. }

Reply

Marsh Posté le 22-12-2004 à 14:26:12   

Reply

Marsh Posté le 22-12-2004 à 14:29:27    

C'est quoi comme truc ce que tu fais :

Code :
  1. public static CerveauImpl restaurerCerveau() {


:ouch:  
 
EOFException sinon c'est quand t'es arrivé à la fin du fichier, non ?

Reply

Marsh Posté le 22-12-2004 à 14:32:24    

oui bien sur que c est une fin de fichier mais pourquoi il ne m en fait qu apres 4 partie ca...
 
Et ce que je fait: un aprentissage via réseaux neuronaux

Reply

Marsh Posté le 22-12-2004 à 14:35:09    

Le FileInputStream qu'est pas clôt ?
 
 
Ouf pour ton projet, j'me suis dit "ça y est, il nous fait un programme pour faire le backup de son cerveau" :D

Reply

Marsh Posté le 22-12-2004 à 14:36:52    

Si je viens d ajouter un fos.close(); mais ca aide pas...
 
Non mon cerveau tient pas dans mon backup  ;)


Message édité par the big ben le 22-12-2004 à 14:37:23
Reply

Marsh Posté le 22-12-2004 à 14:39:04    

:D
 
Sinon envoi la StackTrace une fois de ton Exception


Message édité par FlorentG le 22-12-2004 à 14:39:24
Reply

Marsh Posté le 22-12-2004 à 14:44:56    

Atta tu va t amuser... :pt1cable:  
 
java.io.EOFException
 at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.readObject(Unknown Source)
 at java.util.ArrayList.readObject(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.readObject(Unknown Source)
 at java.util.ArrayList.readObject(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.readObject(Unknown Source)
 at java.util.ArrayList.readObject(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
 at java.lang.reflect.Method.invoke(Unknown Source)
 at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.readArray(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
 at java.io.ObjectInputStream.readSerialData(Unknown Source)
 at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
 at java.io.ObjectInputStream.readObject0(Unknown Source)
 at java.io.ObjectInputStream.readObject(Unknown Source)
 at ia.CerveauImpl.restaurerCerveau(CerveauImpl.java:114)
 at ia.Test.main(Test.java:29)


Message édité par the big ben le 22-12-2004 à 14:45:15
Reply

Marsh Posté le 22-12-2004 à 14:49:41    

Ouch :D Ok, donc c'est bien au moment du readObject...


Message édité par FlorentG le 22-12-2004 à 14:50:02
Reply

Marsh Posté le 22-12-2004 à 14:52:48    

Je ne dis pas que c'est la cause de ton problème, mais ton block try/catch n'est pas tout à fait correct.
 
Si une exception se produit dans le bloc try, le close n'est jamais atteint.
 
Tu dois utiliser un bloc finally.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 22-12-2004 à 14:58:33    

Oui en effet mais j ai testé c est pas ca non plus..

Reply

Marsh Posté le 22-12-2004 à 14:58:33   

Reply

Marsh Posté le 22-12-2004 à 16:10:16    

ben c'est surement qu'il est mal écrit dans le fichier ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 22-12-2004 à 16:20:59    

Oui mais comment se fait il qu il peut le lire 3 fois avant alors?

Reply

Marsh Posté le 22-12-2004 à 16:28:15    

c'est 4 fois le même fichier avec les mêmes données dedans ?  :heink:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed