[英]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.