LZ你的代码:
OI.outR().writeObject(eleven);
OI.outR().close(); 
这里是生成两个对象,并对两个对象进行操作,也就是说第一个对象并没有关闭,那样内容没有写入
只能在整个程序结束后才关闭的
你应改成:
ObjectOutputStream oos=OI.outR();
oos.writeObject(r);
oos.close();//读入的同时也要如此处理

解决方案 »

  1.   

    原因很简单,你的输出输入流没有关闭
    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); 


    已测试通过。