Java 反序列化对象的Arraylist

Java 反序列化对象的Arraylist,java,object,serialization,arraylist,Java,Object,Serialization,Arraylist,我正在处理一个我无法解决的非常痛苦的难题。。。虽然我已经能够对单个对象进行序列化/反序列化,但我发现自己此刻陷入了困境。原因是我正在处理一个对象的ArrayList,但无法找出它。。。到目前为止,我已经设法将其写入一个文件FootballClub.ser。下面这个是我最好的尝试,但我得到了 线程“main”java.lang.ClassCastException中的异常:java.util.ArrayList不能转换为足球俱乐部 公共类足球俱乐部文件编写器{ 私有静态最终字符串filename_

我正在处理一个我无法解决的非常痛苦的难题。。。虽然我已经能够对单个对象进行序列化/反序列化,但我发现自己此刻陷入了困境。原因是我正在处理一个对象的ArrayList,但无法找出它。。。到目前为止,我已经设法将其写入一个文件FootballClub.ser。下面这个是我最好的尝试,但我得到了

线程“main”java.lang.ClassCastException中的异常: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);
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()**
返回俱乐部;
}
}

您正在尝试反序列化足球俱乐部中的数组。。 试试看