繁体   English   中英

从二进制文件中读取要在屏幕上显示的类对象数组时遇到麻烦

[英]trouble reading an array of class objects to screen from binary file

无法将二进制文件中的类对象数组读取到屏幕上。 到目前为止,即使文件上有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;

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

如果您想在流中使用Person[] ,则应该更改您的编写代码-否则,您应该知道有多少人可以阅读,并且只需使用:

for (int i = 0; i < count; i++) {
    Person person = (Person) ois.readObject();
    // Display the person
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM