用什么样的方法能实现用ObjectInputStream中的readObject()循环的从文件中读取数据
请举例详细说明

解决方案 »

  1.   

    Student stu1 = new Student(20,"zhangsan",25,"huaxue");
    Student stu2 = new Student(18,"lisi",23,"wuli");
    Student stu = null;
    try
    {
             FileOutputStream fos = new FileOutputStream("Student.txt");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    oos.writeObject(stu1);
    oos.writeObject(stu2);
    fos.close();
    oos.close();
    FileInputStream fis = new FileInputStream("Student.txt");
    ObjectInputStream ois = new ObjectInputStream(fis);
    while((stu = (Student)ois.readObject())!=null)
    {
    stu = (Student)ois.readObject();
    System.out.println("Id: " + stu.getId());
    System.out.println("Name: " + stu.getName());
    System.out.println("Age: " + stu2.getAge());
    System.out.println("Department: " + stu2.getDepartment());
    fis.close();
    ois.close();
    }
    }
    catch(EOFException e)
    {
    e.printStackTrace();
    }
    程序运行的时候在while((stu = (Student)ois.readObject())!=null)出现错误
    只能将第一第记录读出
    Exception in thread "main" java.io.IOException: No such file or directory
    at java.io.FileInputStream.read(Native Method)
    at java.io.ObjectInputStream$PeekInputStream.peek(ObjectInputStream.java:2200)
    at java.io.ObjectInputStream$BlockDataInputStream.peek(ObjectInputStream.java:2490)
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2500)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1267)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
    at Serialization.main(Serialization.java:24)
      

  2.   

    System.out.println(  "Age:    "  +  stu.getAge());  
    System.out.println(  "Department:    "  +  stu.getDepartment());