有一个java序列化的问题
package io_stream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
class Person implements Serializable{
private String name;
int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString(){
return name+"---"+age;
}
}
public class ObjectStreamDemo {
public static void main(String[] args) throws IOException, ClassNotFoundException{
ObjectOutputStream oos=new ObjectOutputStream(new FileOutputStream("d: est1.txt"));
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("d: est1.txt"));
Person p=new Person("Lu Changhao",18);
oos.writeObject(p);
Object obj=ois.readObject();
System.out.println(obj);
}
}
这个程序先运行一次,然后再把 oos.writeObject(p);这一行注释掉后在运行为什么会出EOFException异常?
虽然报eof错,但是程序还是执行完了的,而且是正常运行结束。你只注释掉输出流写入的部分的是不行的,还需要把定义部分也注释掉。
您好,您中间可能编辑有误,望采纳
重新启动程序吧