如何识别从文件中读取数据的3个对象(Java)
我想读取3个对象的所有数据,这些数据都位于同一个Arraylist中。例如,我有三个班,分别是汽车、出租车、汽车。出租车、汽车类是从supclass Vehicle继承而来的。Arraylist称为vehiclelist,包含出租车、汽车、车辆。当我将对象写入文件时,它们具有不同的属性。这是我的车辆档案如何识别从文件中读取数据的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
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列吗?修复文件格式,使其显示数据类型。