Вот что я делаю, когда сохраняю свой счет в рекорд.
public void save() {
try {
BufferedWriter fw = new BufferedWriter(new FileWriter(myDir
+ "/HIGHSCORE.txt"));
for (Integer i : scores) {
System.out.println(i);
fw.write(i);
fw.newLine();
fw.flush();
}
fw.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void beforeSave() {
List<String> stringReader = new ArrayList<String>();
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(myDir + "/HIGHSCORE.txt"));
String s = "";
while ((s = br.readLine()) != null) {
System.out.println("LINE: " + s + "\n");
scores.add(Integer.parseInt(s));
}
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
У меня есть два метода для сохранения и загрузки информации о данных, перед тем, как я использую в onResume () mwthod, перед сохранением () я добавлю в onPause () функцию save (). Он вылетает, когда я вызываю onStop () (закрываю программу), и я заранее уверен, что befoeStart () не сработает. Я использовал класс Scanner, чтобы использовать метод nextInt (), но он не работает :(. И когда я просто сохраняю один счет, он работает. Что, черт возьми, я делаю неправильно?
PS. Теперь я уверен, что мне нужно использовать flush (), но до этого он не работает.
// Daniel