我正在尝试为我的游戏创建保存状态,而不是为了你的游戏留下的地方,而是像记分板一样简单。格式如下:
Wins: 5
Losses: 10
GamesPlayed: 15
我需要能够访问该文件,并且根据玩家是否赢了/丢失它会将+1加到文件中的值。
最好的方法是什么?我听说过一些不同的方法来保存数据,例如XML,但是对于我的数据大小来说,这些方法是不是太过分了?
此外,我确实希望保留此文件safe
能够进入文件并更改数据的用户。我需要进行某种加密吗?并且,如果用户删除文件并将其替换为空文件,他们不能在技术上重置其值吗?
答案 0 :(得分:3)
您可以使用普通序列化/反序列化。为了序列化/反序列化类,它必须实现Serializable
接口。这是一个开头的例子:
public class Score implements Serializable {
private int wins;
private int loses;
private int gamesPlayed;
//constructor, getter and setters...
}
public class ScoreDataHandler {
private static final String fileName = "score.dat";
public void saveScore(Score score) {
ObjectOutputStreamout = null;
try {
out = new ObjectOutputStream(new FileOutputStream(fileName));
out.writeObject(score);
} catch (Exception e) {
//handle your exceptions...
} finally {
if (out != null) {
try {
out.close();
} catch (IOException ioe) {
}
}
}
}
public Score loadScore() {
ObjectInputStreamin = null;
Score score = null;
try {
in = new ObjectInputStream(new FileInputStream(fileName));
score = (Score)in.readObject();
} catch (Exception e) {
//handle your exceptions...
} finally {
if (in != null) {
try {
in.close();
} catch (IOException ioe) {
}
}
}
return score;
}
}