Я гуглял, я смотрел на 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();
}
}
Извините, но почему-то код получается не очень красиво. Итак, подытожил вопросы:
- Какой метод мне следует использовать, если я хочу записать и прочитать игровые данные и почему? (ИП вроде здесь или SQLlite?)
- Я получаю myDir, это лучшее место для хранения таких данных, где еще и почему?
- Есть ли способ работы с ArrayList? У кого-нибудь есть простой пример для этого?
Большое спасибо!