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因为我需要能够在其中保存多个玩家的数据