Java 从文件读取保存的数组列表(对象)时发生类强制转换异常
我想将数据从文件中实际读取到Java 从文件读取保存的数组列表(对象)时发生类强制转换异常,java,arraylist,classcastexception,objectinputstream,Java,Arraylist,Classcastexception,Objectinputstream,我想将数据从文件中实际读取到Flight\u注册表类的数组列表中。我可以将数组列表保存在文件中,但当我尝试从文件中读取时,它不起作用,并导致类强制转换异常。我还试图直接获取数组列表中的值,但没有成功。 您能告诉我应该写什么来将数据从文件读取到数组列表中吗 try { ObjectInputStream ois = new ObjectInputStream(new FileInputStream(" Flight Registrie.bin")); Flight_registr
Flight\u注册表
类的数组列表中。我可以将数组列表保存在文件中,但当我尝试从文件中读取时,它不起作用,并导致类强制转换异常。我还试图直接获取数组列表中的值,但没有成功。
您能告诉我应该写什么来将数据从文件读取到数组列表中吗
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");
}
错误:
线程“main”java.lang.ClassCastException中的异常:类
无法将java.util.ArrayList强制转换为类
source\u module.Flight\u注册表(java.util.ArrayList位于模块中
加载程序“bootstrap”的java.base;source__module.Flight_注册表位于
加载程序“app”的未命名模块)
在source\u module.Functions.get\u数据(Functions.java:64)
位于file.Launcher.main(Launcher.java:41)
您似乎正在文件中保存列表。但在阅读时,你正在试图将一份清单读入航班登记簿 这就是为什么在尝试将ArrayList对象强制转换为Flight_registrie类的和对象时出现错误的原因。故障线路为:
Flight_registrie b =(Flight_registrie) ois.readObject();
尝试将其更改为:
List<Flight_registrie> b =(List<Flight_registrie>) ois.readObject();
listb=(List)ois.readObject();
这应该可以解决问题。看起来您的代码试图读取的是
Flight\u registrie
对象,而不是ArrayList
。是的,但如何从文件中读取数组列表,似乎您写入了文件ArrayList,但读取了列表项。您需要用序列化代码更新问题。我编辑了另一个代码,它显示了我是如何接受输入的。那个么我应该从文件中读什么呢?若你们写一个香蕉,你们必须读一个香蕉。不是苹果。不是一盒香蕉。如果要读取注册表,必须编写注册表。如果你写一个ArrayList,你必须读一个ArrayList。你应该首先读一个类的对象,这个类的对象是在文件中写的。默认情况下,当文件实现可序列化时,可以从文件中写入和读取列表。