我一直在谷歌搜索,我看了StackOverflow并看到了很多例子,但我真的无法掌握它。我是android的新手,学习如何读/写。
也许你们其中一个人可以帮我一些简单的代码。我想要的是保存分数,剩余时间并将检查点传递到文件中,因为您可以在几天后再次停止和播放。
所以在我的想象中,理想的是(因为它只是简单的数据)不能使用SQL lite,而只是使用文本文件。我无法找到如何使用列表,读取,写入的检验代码。
如果您从文件中读取整个列表(字符串)会很好,此列表的长度可能会发生变化。然后你可以更新列表,让我们说list [5] = 200(500),然后把它写回文件。您还可以将数据添加到文件(传递的检查点)。
作为一个开始,我想出了这个,但我坚持使用检查点,我不确定是否写入文件整个文件将被重写或我正在添加数据:
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代码不是很漂亮。所以总结了一些问题:
非常感谢!
答案 0 :(得分:2)
在任何情况下,尝试使用简化进一步处理的文件格式,例如,您可以使用Properties文件(易于在Java中编写/解析),并将每个级别检查点存储为属性或其他内容像那样(即level_1_checkpoint = 200)。