-1

无法将二进制文件中的类对象数组读取到屏幕上。到目前为止,我只能读取第一个对象,尽管文件上有 46 个单独的对象。这是代码:

private void readBinaryFile()
{
    ObjectInputStream ois = null;
    Person[] personData = null;
     try 
     {
         ois = new ObjectInputStream(new FileInputStream(FILE));
         personData = (Person[]) ois.readObject();

         for(Person p : personData)
         {  
             System.out.println(p.getName() +
                       "\t" + p.getRanking() +
                       "\t  " + p.getIDNumber());
         }
         ois.close();
     }
     catch (FileNotFoundException e) {}
     catch (IOException e) {}
     catch (ClassNotFoundException e) {}
}

即使代码编译,当我调用该方法时,我也会收到此错误:

java.lang.ClassCastException: Person cannot be cast to [LPerson;
4

1 回答 1

3

看起来您的对象流包含一系列单独的Person对象 - 而不是Person[].

如果您想Person[]在流中使用 a,则应该更改编写代码 - 否则,您应该大概知道要阅读多少人,然后使用:

for (int i = 0; i < count; i++) {
    Person person = (Person) ois.readObject();
    // Display the person
}
于 2013-02-26T08:15:08.510 回答