好简单的问题..。我用文件句柄来写和读分数。得不偿失。但是,与缓冲的读取器不同,您不能使用read.line();那么如何在文件处理程序中编写和读取行呢?谢谢这是密码
private void writeSaveData()
{
winstring = Integer.toString(wins);
lossstring = Integer.toString(losses);
FileHandle scores = Gdx.files.local("Score");
scores.writeString(winstring, false);
// I want to add another line here for lossess
}
private void loadScores()
{
FileHandle scores = Gdx.files.local("Score");
winstringread= scores.readString(winstring);
wins = Integer.parseInt(winstringread);
// same here add line to read lossess
}发布于 2016-05-20 14:18:43
对于libgdx和您正在描述的这个特定问题。您可以完整地读取和写入字符串,并对分隔符进行解析。
不可读的。我们在这里所做的是采取和使用字符串格式,以便我们可以清楚地看到如何写行。我们是先赢第一,第二输,所以如果我赢了10,他们输了5,线看起来就像这个10=5。这将保存到文件中。当我们读回文件时,我们读取10=5,然后在=上拆分这个字符串,剩下两个字符串10和5。然后,我们可以将这些解析为整数。
private void writeSaveData()
{
String saveString = String.format("%d=%d", wins, losses);
FileHandle scores = Gdx.files.local("Score");
scores.writeString(saveString, false);
}
private void loadScores()
{
FileHandle scores = Gdx.files.local("Score");
String loaddedString = scores.readString(winstring);
String[] scores = loadedString.split("=");
wins = Integer.parseInt(scores[0]);
losses = Integer.parseInt(scores[1])
}发布于 2016-05-17 19:17:13
在您的例子中,我建议您查看一下JSON格式。这里是一个官方的博士。基本上,您只需要创建简单的POJO类,在您的示例中,可以这样做:
public class GameResults {
private int wins;
private int losses;
...
public int getWins() {
return wins;
}
public void setWins(int wins){
this.wins=wins;
}
...
}然后,每当需要写入结果文件时,使用:
GameResults results = new GameResults();
results.setWins(winstring);
Json json = new Json();
FileHandle scores = Gdx.files.local("Score");
scores.writeString(json.toJson(results), false);当你需要阅读时:
FileHandle scores = Gdx.files.local("Score");
winstringread = scores.readString(winstring);
Json json = new Json();
GameResults results = json.fromJson(GameResults, winstringread);奖励:
此外,还可以使用Base64Coder类来解码结果文件。只是为了保护更多人免受黑客攻击。您只需要在读取文件时添加这一行:
Base64Coder.decodeString(RESULT_FILE.readString()), false)当你写到:
RESULT_FILE.writeString(Base64Coder.encodeString(RESULT_FILE.readString()), false);https://stackoverflow.com/questions/37283273
复制相似问题