我在读取文本文件中的对象时遇到了一些麻烦,因为它会导致以下错误;JAVA - 加载基于对象的文件时遇到的问题
Exception in thread "main" java.lang.ClassCastException: java.util.ArrayList cannot be cast to stock.control.system.StockItem
这就是这一行;
StockItem result = (StockItem) ois.readObject();
下面是我如何保存我的文件;
try { FileOutputStream fout = new FileOutputStream(filename);
ObjectOutputStream oos = new ObjectOutputStream(fout);
oos.writeObject(StockItems); }
catch (java.io.FileNotFoundException error) {
System.out.println("FILE NOT FOUND!");
}
这里是我已经做了很多工作,将文件加载回对象ArrayList;
try {
FileInputStream fis = new FileInputStream(filename);
ObjectInputStream ois = new ObjectInputStream(fis);
System.out.println("LOADING DATA ...");
StockItem result = (StockItem) ois.readObject();
ois.close();
System.out.println(result.getItemID() + ", " + result.getItemDesc()
+ ", " + result.getPrice() + ", " + result.getQuantity() + ", "
+ result.getReOrderLevel()); // used for testing
} catch (java.io.FileNotFoundException error) {
System.out.println("FILE NOT FOUND!");
} catch (IOException | ClassNotFoundException ex) {
Logger.getLogger(StockArrayList.class.getName()).log(Level.SEVERE, null, ex);
}
如果任何地方可以教育我,所以它可以正确完成它将不胜感激。
什么是'StockItems'?这是一个'StockItem'实例吗? – starf
您序列化了'StockItem []'类型的对象并且想要将未反序列化的对象强制类型为'StockItem'?这一定会失败。将它重新序列化为一个数组。 – blafasel
看起来你正在编写一个数组列表“StockItems”,但试图阅读“StockItem”。 –