aspose file tools*
The moose likes I/O and Streams and the fly likes code throws error Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » I/O and Streams
Bookmark "code throws error "java.io.EOFException"?" Watch "code throws error "java.io.EOFException"?" New topic
Author

code throws error "java.io.EOFException"?

minal silimkar
Ranch Hand

Joined: Nov 25, 2007
Posts: 133
FileInputStream fis=new FileInputStream("emp.ser");
ObjectInputStream ois=new ObjectInputStream(fis);

System.out.println("De-serializing object...");

Employee e1[]=new Employee[5];
int i=0;
while((e1[i]=(Employee)ois.readObject())!=null){
//e1[i]=(Employee)ois.readObject();
System.out.println(e1[i].getEmpno()+"\t"+e1[i].getSalary());
}
System.out.println("Object de-serialize...");
ois.close();
fis.close();


Minal Silimkar
Joe Ess
Bartender

Joined: Oct 29, 2001
Posts: 8908
    
    8

ObjectInputStream.readObject does not return null on EOF, as your while loop expects. It throws an EOFException. Have a look at the API documentation for the particulars. I don't like relying on exceptions to signal something that is expected, like EOF so I usually store a bunch of objects in a collection of some sort and serialize that. Other folks will recommend first writing the number of objects to the stream, then writing the objects.


"blabbing like a narcissistic fool with a superiority complex" ~ N.A.
[How To Ask Questions On JavaRanch]
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: code throws error "java.io.EOFException"?