import java.io.*;
public class Ftest
{
   public static void main(String[] args)throws Exception
   {
    ObjectInputStream in=new ObjectInputStream(new FileInputStream("d:\\a.dat"));
    ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("d:\\a.dat"));
   
    Xlh a=new Xlh();
    out.writeObject(a);
    Xlh b=(Xlh)in.readObject();
    System.out.print(b.name+b.age);
    in.close();
    out.close();
   }
}class Xlh implements Serializable{
String name="aaa";
String age="22";
}出现异常是:Exception in thread "main" java.io.EOFException
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2232)
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2698)
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:750)
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:268)
    at Ftest.main(Ftest.java:21)想问下错误原因是什么怎么改 谢谢啦

解决方案 »

  1.   

      Xlh a=new Xlh(); 
      out.writeObject(a);
      out.close(); 
     //写入流打开了以后要先关闭,才能打开读出流读出数据的
      Xlh b=(Xlh)in.readObject(); 
      System.out.print(b.name+b.age); 
      in.close(); 
        
      

  2.   

        ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream("d:\\a.dat")); 
        
        Xlh a=new Xlh(); 
        out.writeObject(a); 
        out.close(); 
        
        ObjectInputStream in=new ObjectInputStream(new FileInputStream("d:\\a.dat"));     Xlh b=(Xlh)in.readObject(); 
        System.out.print(b.name+b.age); 
        in.close(); 
      

  3.   


    import java.io.*;public class Ftest {
    public static void main(String[] args) throws Exception {
    ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(
    "d:\\a.dat")); Xlh a = new Xlh();
    out.writeObject(a);
    out.close();
    ObjectInputStream in = new ObjectInputStream(new FileInputStream(
    ""));
    Xlh b = (Xlh) in.readObject();
    System.out.print(b.name + b.age);
    in.close(); }
    }class Xlh implements Serializable {
    String name = "aaa"; String age = "22";
    }
    代码顺序不对,在创建in的时候还有没d:\\a.dat文件,还有在写完对象后out应该关闭,然后再创建in对象