我一直在使用Google,我查看了StackOverflow并看到了很多示例,但我无法真正掌握它。我刚接触android并学习如何读/写。阅读写SD卡列表
也许你们中的一个人可以用一些简单的代码来帮助我。我想要的是保存得分,剩下时间并将检查点通过一个文件,因为您可以在几天后停止并再次播放。
因此,在我的想象中,理想将是(因为它只是简单的数据)不是使用SQL lite,而是使用文本文件。我无法找到如何使用列表,读取,写入的检验代码。
如果从文件中读取整个列表(字符串),这个列表可能会改变,这将是很好的。然后你可以更新列表,比方说列表[5] = 200(500),然后把它写回文件。你也可能想把数据添加到文件中(通过的检查点)。
作为一个开始,我想出了这一点,但I'm坚持的检查点,我不知道如果我写整个文件将被改写的文件或I'm添加数据:
private static String filename = "currentgamedata.txt";
private String myDir = Environment.getExternalStorageDirectory() + "/MyDirectory/";
String enter = System.getProperty("line.separator");
public void WriteCurrentGameData(){
try {
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(openFileOutput(myDir+filename , MODE_WORLD_WRITEABLE)));
String MinutesLeft=Long.toString(GameTimeLeft);
String SaveScore=Integer.toString(score);
writer.write(MinutesLeft+enter);
writer.write(SaveScore+enter);
//HERE SHOULD COME SOME CODE FOR THE CHECKPOINTS
writer.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public void ReadCurrentGameData(){
try {
BufferedReader input = new BufferedReader(new InputStreamReader(
openFileInput(myDir+filename)));
GameTimeLeft=Long.parseLong(input.readLine());
score=Integer.parseInt(input.readLine());
Log.d("Reader" , Long.toString(GameTimeLeft));
Log.d("Reader" , Integer.toString(score));
input.close();
} catch (Exception e) {
e.printStackTrace();
}
}
对不起,somhow代码不会非常漂亮。因此总结了以下问题:
- 如果我想要游戏数据写入和读取以及为什么要使用什么样的方法? (FE在这里或SQLlite?)
- 我正在获取myDir,这是存储此类数据的最佳位置,还有其他地方,为什么?
- 有没有办法使用ArrayList?有没有人有一个简单的例子呢?
非常感谢!
谢谢,是否有一个很好的方式来读取一个数组,并保存后编辑,或者我可以直接访问内部存储某些行(希望你能得到我想说的)?有一些示例代码可用吗? (我认为内部存储的确是最好的,它的工作方式与外部工作方式差不多吗?) – Diego