LZ你的代码:
OI.outR().writeObject(eleven);
OI.outR().close();
这里是生成两个对象,并对两个对象进行操作,也就是说第一个对象并没有关闭,那样内容没有写入
只能在整个程序结束后才关闭的
你应改成:
ObjectOutputStream oos=OI.outR();
oos.writeObject(r);
oos.close();//读入的同时也要如此处理
OI.outR().writeObject(eleven);
OI.outR().close();
这里是生成两个对象,并对两个对象进行操作,也就是说第一个对象并没有关闭,那样内容没有写入
只能在整个程序结束后才关闭的
你应改成:
ObjectOutputStream oos=OI.outR();
oos.writeObject(r);
oos.close();//读入的同时也要如此处理
OI.outR().writeObject(eleven);
OI.outR().close();
仔细看看你的OI.outR()方法的实现,每次都创建了新的流。OI.outR().close(); 这行执行后,执行OI.outR().writeObject(eleven); 的ObjectOutputStream并没有关闭。
你改成下边这样就可以了:import java.io.*;
public class Run {
public static void main(String[] args) throws Exception {
R eleven = new R();
eleven.name = "eleven";
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("Data/o.ele"));
out.writeObject(eleven);
out.outR().close(); ObjectInputStream in = new ObjectInputStream(new FileInputStream("Data/o.ele"));
R r1 = (R) in.readObject();
in.close();
System.out.println(r1.name);
}
}
已测试通过。