Java 反序列化对象的Arraylist
我正在处理一个我无法解决的非常痛苦的难题。。。虽然我已经能够对单个对象进行序列化/反序列化,但我发现自己此刻陷入了困境。原因是我正在处理一个对象的ArrayList,但无法找出它。。。到目前为止,我已经设法将其写入一个文件FootballClub.ser。下面这个是我最好的尝试,但我得到了 线程“main”java.lang.ClassCastException中的异常:java.util.ArrayList不能转换为足球俱乐部Java 反序列化对象的Arraylist,java,object,serialization,arraylist,Java,Object,Serialization,Arraylist,我正在处理一个我无法解决的非常痛苦的难题。。。虽然我已经能够对单个对象进行序列化/反序列化,但我发现自己此刻陷入了困境。原因是我正在处理一个对象的ArrayList,但无法找出它。。。到目前为止,我已经设法将其写入一个文件FootballClub.ser。下面这个是我最好的尝试,但我得到了 线程“main”java.lang.ClassCastException中的异常:java.util.ArrayList不能转换为足球俱乐部 公共类足球俱乐部文件编写器{ 私有静态最终字符串filename_
公共类足球俱乐部文件编写器{
私有静态最终字符串filename_1=“FootballClub.ser”;
私有静态最终字符串filename_2=“FootballClub.txt”//用于问题5
公共静态无效序列化ToDisk(ArrayList clubs)引发IOException{
FileOutputStream fos=新的FileOutputStream(文件名_1);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.书面对象(俱乐部);
fos.close();
oos.close();
}
公共静态ArrayList deserializeFromDisk()引发IOException,ClassNotFoundException{
ArrayList desrializatedClubs=新ArrayList();
FileInputStream fileIn=新文件inputstream(“FootballClub.ser”);
ObjectInputStream in=新的ObjectInputStream(fileIn);
FootballClubNL club=.readObject()中的(FootballClubNL);
退赛俱乐部;
}
}
您的文件包含一个足球俱乐部列表,这正是从.readObject()中的返回的内容,因此您必须将其转换为数组列表。您的文件包含一个足球俱乐部列表,而这正是从.readObject()中的返回的内容,因此,您必须将其强制转换为数组列表。您的文件包含足球俱乐部列表,这正是从.readObject()中的返回的内容,因此,您必须将其强制转换为ArrayList
。您的文件包含一个足球俱乐部列表,这正是从.readObject()中的返回的内容,因此您必须将其强制转换为ArrayList
。您序列化了一个列表
,但您正在反序列化到足球俱乐部列表
。换一行就行了
FootballClubNL club = (FootballClubNL)in.readObject();
到
.readObject()中的desrializedClubs=(ArrayList);
您序列化了一个列表
,但您正在反序列化到足球俱乐部。换一行就行了
FootballClubNL club = (FootballClubNL)in.readObject();
到
.readObject()中的desrializedClubs=(ArrayList);
您序列化了一个列表
,但您正在反序列化到足球俱乐部。换一行就行了
FootballClubNL club = (FootballClubNL)in.readObject();
到
.readObject()中的desrializedClubs=(ArrayList);
您序列化了一个列表
,但您正在反序列化到足球俱乐部。换一行就行了
FootballClubNL club = (FootballClubNL)in.readObject();
到
.readObject()中的desrializedClubs=(ArrayList);
试试这个:
desrializaedClubs = (ArrayList<FootballClubNL>)in.readObject();
.readObject()中的desrializedClubs=(ArrayList);
试试这个:
desrializaedClubs = (ArrayList<FootballClubNL>)in.readObject();
.readObject()中的desrializedClubs=(ArrayList);
试试这个:
desrializaedClubs = (ArrayList<FootballClubNL>)in.readObject();
.readObject()中的desrializedClubs=(ArrayList);
试试这个:
desrializaedClubs = (ArrayList<FootballClubNL>)in.readObject();
.readObject()中的desrializedClubs=(ArrayList);
将其强制转换为ArrayList
List<FootballClubNL> clubs = (ArrayList<FootballClubNL> )in.readObject();
List clubs=(ArrayList)在.readObject()中;
将其强制转换为ArrayList
List<FootballClubNL> clubs = (ArrayList<FootballClubNL> )in.readObject();
List clubs=(ArrayList)在.readObject()中;
将其强制转换为ArrayList
List<FootballClubNL> clubs = (ArrayList<FootballClubNL> )in.readObject();
List clubs=(ArrayList)在.readObject()中;
将其强制转换为ArrayList
List<FootballClubNL> clubs = (ArrayList<FootballClubNL> )in.readObject();
List clubs=(ArrayList)在.readObject()中;
您正在尝试反序列化足球俱乐部中的数组。。
试试下面的方法
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class FootballClubFileWriter {
private static final String filename_1 = "FootballClub.ser";
private static final String filename_2 = "FootballClub.txt"; //Use for question 5
public static void serializeToDisk(ArrayList<FootballClubNL> clubs) throws IOException {
FileOutputStream fos = new FileOutputStream(filename_1);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(clubs);
fos.close();
oos.close();
}
public static ArrayList<FootballClubNL> deserializeFromDisk()throws IOException, ClassNotFoundException {
ArrayList<FootballClubNL> desrializaedClubs = new ArrayList<FootballClubNL>();
FileInputStream fileIn = new FileInputStream("FootballClub.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
**ArrayList<FootballClubNL> club = (ArrayList<FootballClubNL>)in.readObject();**
return club;
}
}
import java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.ObjectInputStream;
导入java.io.ObjectOutputStream;
导入java.util.ArrayList;
公共级足球俱乐部文件编写员{
私有静态最终字符串filename_1=“FootballClub.ser”;
私有静态最终字符串filename_2=“FootballClub.txt”//用于问题5
公共静态无效序列化ToDisk(ArrayList clubs)引发IOException{
FileOutputStream fos=新的FileOutputStream(文件名_1);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.书面对象(俱乐部);
fos.close();
oos.close();
}
公共静态ArrayList deserializeFromDisk()引发IOException,ClassNotFoundException{
ArrayList desrializatedClubs=新ArrayList();
FileInputStream fileIn=新文件inputstream(“FootballClub.ser”);
ObjectInputStream in=新的ObjectInputStream(fileIn);
**ArrayList club=(ArrayList)in.readObject()**
返回俱乐部;
}
}
您正在尝试反序列化足球俱乐部中的数组。。
试试下面的方法
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
public class FootballClubFileWriter {
private static final String filename_1 = "FootballClub.ser";
private static final String filename_2 = "FootballClub.txt"; //Use for question 5
public static void serializeToDisk(ArrayList<FootballClubNL> clubs) throws IOException {
FileOutputStream fos = new FileOutputStream(filename_1);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(clubs);
fos.close();
oos.close();
}
public static ArrayList<FootballClubNL> deserializeFromDisk()throws IOException, ClassNotFoundException {
ArrayList<FootballClubNL> desrializaedClubs = new ArrayList<FootballClubNL>();
FileInputStream fileIn = new FileInputStream("FootballClub.ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
**ArrayList<FootballClubNL> club = (ArrayList<FootballClubNL>)in.readObject();**
return club;
}
}
import java.io.FileInputStream;
导入java.io.FileOutputStream;
导入java.io.IOException;
导入java.io.ObjectInputStream;
导入java.io.ObjectOutputStream;
导入java.util.ArrayList;
公共级足球俱乐部文件编写员{
私有静态最终字符串filename_1=“FootballClub.ser”;
私有静态最终字符串filename_2=“FootballClub.txt”//用于问题5
公共静态无效序列化ToDisk(ArrayList clubs)引发IOException{
FileOutputStream fos=新的FileOutputStream(文件名_1);
ObjectOutputStream oos=新的ObjectOutputStream(fos);
oos.书面对象(俱乐部);
fos.close();
oos.close();
}
公共静态ArrayList deserializeFromDisk()引发IOException,ClassNotFoundException{
ArrayList desrializatedClubs=新ArrayList();
FileInputStream fileIn=新文件inputstream(“FootballClub.ser”);
ObjectInputStream in=新的ObjectInputStream(fileIn);
**ArrayList club=(ArrayList)in.readObject()**
返回俱乐部;
}
}
您正在尝试反序列化足球俱乐部中的数组。。
试试看