我一直在使用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