Java序列化和对象处理

Java序列化和对象处理,java,class,serialization,Java,Class,Serialization,我正在使用下面的代码,从保存在我桌面上的文件中获取数据,输入到我正在制作的游戏中 try { FileInputStream saves = new FileInputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser"); ObjectInputStream in = new ObjectInputStream(saves); test = (player) in.readObject(); in.close(

我正在使用下面的代码,从保存在我桌面上的文件中获取数据,输入到我正在制作的游戏中

try {
    FileInputStream saves = new FileInputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser");
    ObjectInputStream in = new ObjectInputStream(saves);
    test = (player) in.readObject();
    in.close();
    saves.close();
} catch(IOException error) {
    error.printStackTrace();
    return;
} catch(ClassNotFoundException error) {
    error.printStackTrace();
    return;
}
还有一个部分,用于获取播放器对象并将其输入到文件中

player realPlayer = new player();
realPlayer.name = newName;
realPlayer.gender = newGender;
realPlayer.hasStarted = false;
try {
    FileOutputStream fileOut = new FileOutputStream("/Users/Prodigy958/Desktop/Hack_exeSaves.ser");
    ObjectOutputStream out = new ObjectOutputStream(fileOut);
    out.writeObject(realPlayer);
    out.close();
    fileOut.close();
} catch(IOException i) {
    i.printStackTrace();
}

我遇到的问题是,如果将多个玩家数据保存到文件中,它会调用错误,因为它会获取所有数据并将其转换为一个玩家对象。你知道一种简单的方法可以把数据分开吗?我考虑过使用多个文件来存储每个不同对象的数据。我也考虑过取出数据并将其拆分为单独的对象,然后从那里开始工作,但是我不知道从哪里开始处理第二个对象。

正如其他人已经建议的那样,使用的可序列化实现。(大多数java.util集合——如和——都是可序列化的。)0或1元素的集合不应该打扰您(它与集合的序列化无关),除非您的游戏有其他相关的业务需求,但是。。。在这种情况下,这远远超出了这个问题的范围,需要你自己来处理。

序列化一组或一组玩家的HashMap怎么样?@BCartolo那会怎么样?问题是,文件上并不总是会有多个玩家。而且大小为1的集合不适合您,因为…?@whitesite因为我需要能够在其中保存多个玩家的数据