-2

我有从车辆扩展的船、汽车、卡车等三个类,我将所有对象都写在一个文件中,比如 vehicleOrder.dat,如下所示:

fout = new FileOutputStream("VehicleOrders.dat");   
oos = new ObjectOutputStream(fout); 
oos.writeObject(v); //where v is object of boat,truck car etc

直到这里它很好,它写道,但是当我尝试像这样读取 dat 文件时,

fin = new FileInputStream("VehicleOrders.dat");
ois = new ObjectInputStream(fin);
vehicle readInstance=null;

do{
    readInstance = (vehicle)ois.readObject();
    if(readInstance != null)
    {
        orderList.add(readInstance);
    } 
}       
while (readInstance != null); 

它读取 dat 文件中的两个对象,但之后再次执行并给出空指针异常

4

2 回答 2

1

您的班级似乎没有 0-param-Constructor。也许这个链接会帮助你了解解释

于 2013-10-10T01:22:24.173 回答
0

ObjectInputStream期望您尝试反序列化的类实例有一个可见的无参数构造函数。我想你的班级没有。添加一个。

于 2013-10-10T01:22:03.090 回答