[英]Read write SD-card List
我一直在谷歌搜索,我看了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代碼不是很漂亮。 所以總結了一些問題:
非常感謝!
你有幾個選擇 :
在任何情況下,嘗試使用簡化進一步處理的文件格式,例如,您可以使用屬性文件(在Java中易於編寫/解析),並將每個級別檢查點存儲為屬性或類似的東西(即level_1_checkpoint = 200) )。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.