Class 从文件中读取保存的数组列表(对象)时抛出异常
Class cast Exception when reading an saved array list (object) from a file
我想将文件中的数据实际读取到 Flight_registrie
class 的数组列表中。我能够将数组列表保存在文件中,但是当我尝试从文件中读取时,它不起作用并给出 class 转换异常。我也尝试过直接获取数组列表中的值,但是没有用。
你能告诉我应该写什么来将文件中的数据读入数组列表吗?
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(" Flight Registrie.bin"));
Flight_registrie b =(Flight_registrie) ois.readObject();
alr.add(b);
ois.close();
} catch (FileNotFoundException e) {
System.out.println("\t\t\tFile not Found.");
} catch (IOException e) {
System.out.println("An I/O error occurs");
} catch (ClassNotFoundException e) {
System.out.println("\t\tClass Flight_registrie not found ");
}
下面的代码是我接受输入的方式。
try {al.add(a);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(" Flight Registrie.bin"));
oos.writeObject(al);
System.out.println("Data Saved");
al.clear();
oos.close();
} catch (IOException e) {
System.out.println("An I/O error occurs");
}
错误:
Exception in thread "main" java.lang.ClassCastException: class
java.util.ArrayList cannot be cast to class
source__module.Flight_registrie (java.util.ArrayList is in module
java.base of loader 'bootstrap'; source__module.Flight_registrie is in
unnamed module of loader 'app')
at source__module.Functions.get_data(Functions.java:64)
at file.Launcher.main(Launcher.java:41)
您似乎在文件中保存了一个列表。但是在阅读时,您正在尝试将列表读入 Flight_registrie。
当您尝试将 ArrayList 对象转换为 Flight_registrie class 的对象时出现错误的原因。错误的行是:
Flight_registrie b =(Flight_registrie) ois.readObject();
尝试将其更改为:
List<Flight_registrie> b =(List<Flight_registrie>) ois.readObject();
这应该可以解决问题。
我想将文件中的数据实际读取到 Flight_registrie
class 的数组列表中。我能够将数组列表保存在文件中,但是当我尝试从文件中读取时,它不起作用并给出 class 转换异常。我也尝试过直接获取数组列表中的值,但是没有用。
你能告诉我应该写什么来将文件中的数据读入数组列表吗?
try {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(" Flight Registrie.bin"));
Flight_registrie b =(Flight_registrie) ois.readObject();
alr.add(b);
ois.close();
} catch (FileNotFoundException e) {
System.out.println("\t\t\tFile not Found.");
} catch (IOException e) {
System.out.println("An I/O error occurs");
} catch (ClassNotFoundException e) {
System.out.println("\t\tClass Flight_registrie not found ");
}
下面的代码是我接受输入的方式。
try {al.add(a);
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(" Flight Registrie.bin"));
oos.writeObject(al);
System.out.println("Data Saved");
al.clear();
oos.close();
} catch (IOException e) {
System.out.println("An I/O error occurs");
}
错误:
Exception in thread "main" java.lang.ClassCastException: class
java.util.ArrayList cannot be cast to class
source__module.Flight_registrie (java.util.ArrayList is in module
java.base of loader 'bootstrap'; source__module.Flight_registrie is in
unnamed module of loader 'app')
at source__module.Functions.get_data(Functions.java:64)
at file.Launcher.main(Launcher.java:41)
您似乎在文件中保存了一个列表。但是在阅读时,您正在尝试将列表读入 Flight_registrie。
当您尝试将 ArrayList 对象转换为 Flight_registrie class 的对象时出现错误的原因。错误的行是:
Flight_registrie b =(Flight_registrie) ois.readObject();
尝试将其更改为:
List<Flight_registrie> b =(List<Flight_registrie>) ois.readObject();
这应该可以解决问题。