Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何识别从文件中读取数据的3个对象(Java)_Java_Oop_Read Write - Fatal编程技术网

如何识别从文件中读取数据的3个对象(Java)

如何识别从文件中读取数据的3个对象(Java),java,oop,read-write,Java,Oop,Read Write,我想读取3个对象的所有数据,这些数据都位于同一个Arraylist中。例如,我有三个班,分别是汽车、出租车、汽车。出租车、汽车类是从supclass Vehicle继承而来的。Arraylist称为vehiclelist,包含出租车、汽车、车辆。当我将对象写入文件时,它们具有不同的属性。这是我的车辆档案 AAA232,23,TM,GG,222,123 ABC234,23,TA,ga,23,123,ATC LMC232,23,TC,ga,23,123 问题是当我从Vehicle.txt读回Arr

我想读取3个对象的所有数据,这些数据都位于同一个Arraylist中。例如,我有三个班,分别是汽车、出租车、汽车。出租车、汽车类是从supclass Vehicle继承而来的。Arraylist称为vehiclelist,包含出租车、汽车、车辆。当我将对象写入文件时,它们具有不同的属性。这是我的车辆档案

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);

        }
    }  

正如你所看到的,它们都是由车辆读取的,而不是由汽车或出租车读取的,因为如果我使用car object,则车辆无法运行,因为车辆只有6个属性。有什么解决办法吗。

我会通读整行,然后测试有多少分隔符,根据此计数,实例化必要的对象。您是否尝试计算一行中的值数以确定它是否是一辆车?您好!首先考虑一下,作为一个阅读文件的人,您将如何决定哪一行是什么类型的。那么您应该在代码中实现该逻辑。如何区分
出租车
车辆
?这些类型在文件中每行有6列吗?修复文件格式,使其显示数据类型。