class MyMonitor6 implements ActionListener{
public void actionPerformed(ActionEvent e) {
String s = tfW.getText();
try {
FileOutputStream fos = new FileOutputStream(s, true);
ObjectOutputStream oos = new ObjectOutputStream(fos);
for(int i = 0; i<students.size(); i++){
oos.writeObject(students.get(i));
}
fos.flush();
oos.flush();
fos.close();
oos.close();
ta.setText("");
}catch(FileNotFoundException ae){
ae.printStackTrace();
System.exit(-1);
}catch(IOException ae){
ae.printStackTrace();
}
tfW.setText("");
l4.setText("Please check your file at: "+s);
d4.setVisible(true);
}
}

class MyMonitor7 implements ActionListener{
public void actionPerformed(ActionEvent e) {
String s = tfL.getText();
Object obj = null;
try {
FileInputStream fis = new FileInputStream(s);
ObjectInputStream oos = new ObjectInputStream(fis);
while((obj=oos.readObject())!=null){
Student stu = (Student)obj;
students.add(stu);
}
tfL.setText("");
fis.close();
oos.close();
}catch(ClassNotFoundException e1){
System.out.println("No such class exit~!");
}
catch (FileNotFoundException e1) {
e1.printStackTrace();
}catch (IOException e1) {
e1.printStackTrace();
}
l5.setText("The contents of "+s+" have been loaded successfully.");
d5.setVisible(true);

}
}
}上面是注册了2个BUTTON得监听器,第一个是往一个文件里面写object(object都存放在一个List里面),第二个从这个文件里面将object读出来再存到一个装这个object得List里面去。
往文件里面写object的时候没有报Exception,但是每次重新启动程序后,想把这个object从文件里面再读出来重新装到List里面时候就会报EOFException。小弟第一次用Object流没有什么经验,是不是读文件的地方有哪里写的不规范,造成了EOFException。谢谢各位这方面有经验的大侠门给点主意,谢谢先了。printStackTrace现实如下:java.io.EOFException
at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2552)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1297)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at MyFrame$MyMonitor7.actionPerformed(GradeManagement.java:545)
at java.awt.Button.processActionEvent(Button.java:392)
at java.awt.Button.processEvent(Button.java:360)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)