首页 > 解决方案 > 如何识别 3 个对象以从文件中读取数据(Java)

问题描述

我想从 3 个对象中读取所有数据,这些对象都位于同一个 Arraylist 中。例如,我有 3 个类,分别是 Vehicle、Taxi、car。出租车,汽车类是继承自超类车辆。称为车辆列表的数组列表包含出租车、汽车、车辆。当我将对象写入文件时,它们具有不同的属性。这是我的车辆文件

AAA232,23,TM,GG,222,123
ABC234,23,TA,ga,23,123,ATC
LMC232,23,TC,ga,23,123

事情是当我将这些从 Vehicle.txt 读回 Arraylist 时。计算机如何理解哪个属于汽车或出租车,如果汽车有 7 个属性,而出租车只有 6 个属性,我该如何解决。这是我的代码,用于读取文件:

   static void readVehicleFile() {
        try {
            File f = new File("Vehicle.txt");
            Scanner SCF = new Scanner(f);

            while (SCF.hasNext()) {
                String record = SCF.nextLine();
                Scanner SCR = new Scanner(record);
                SCR.useDelimiter(",");

                String plateNum,model,make;
                int capacity,year,ownerID;

                plateNum = SCR.next();
                capacity = SCR.nextInt();
                make = SCR.next();
                model = SCR.next();
                year=SCR.nextInt();
                ownerID=SCR.nextInt();


                Vehicle vehicle = new Vehicle(plateNum,capacity,year,model,make,ownerID);
                vehicleList.add(vehicle);
            }
            SCF.close();
        } catch (FileNotFoundException e) {
            JOptionPane.showMessageDialog(null,"There is a error when saving file","Motor Vehicle Registration System",JOptionPane.ERROR_MESSAGE);

        }
    }  

如您所见,它们都是由车辆而不是汽车或出租车读取的,因为如果我使用汽车对象,那么车辆将无法运行,因为车辆只有 6 个属性。是否有任何解决方案。

标签: javaoopread-write

解决方案


推荐阅读