我刚刚遵循了序列化教程,我想知道为什么它不起作用。我有一个这样的游戏类:
import java.io.Serializable;
public class Game implements Serializable{
private static final long serialVersionUID = -4795536311274486893L;
protected int SHOT_SPEED;
protected int PLAYER_SPEED;
Player player;
ArrayList<SpaceObject> objects;
int level, score;
Dimension resolution;
and so on...
我的阅读器方法应该处理对象 IO,如下所示:
public boolean saveGame(Game game) {
try {
FileOutputStream fileOut = new FileOutputStream(defaultDataName+".ser");
ObjectOutputStream out = new ObjectOutputStream(fileOut);
out.writeObject(game);
out.close();
fileOut.close();
return true;
}
catch (IOException i) {
return false;
}
}
public Game loadGame() throws IOException {
if (readRawData(defaultDataName) == "") throw new IOException("Data was deleted");
Game game = null;
try {
FileInputStream fileIn = new FileInputStream(defaultDataName+".ser");
ObjectInputStream in = new ObjectInputStream(fileIn);
game = (Game) in.readObject();
in.close();
fileIn.close();
}
catch (ClassNotFoundException e) {
throw new IOException("Class not Found: " + e.getMessage());
}
return game;
}
在我看来,我所做的一切都与教程中的完全一样,所以为什么不成功。(它会引发 ClassNotFoundError。感谢您的帮助!