我在讀取文本文件中的對象時遇到了一些麻煩,因爲它會導致以下錯誤;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」。 –