在我的程序中,当玩家提交分数时,它会被添加到名为localHighScores
. 这是玩家在该特定设备上获得的前五名的列表。
我不知道如何使用(如果你知道请分享)写入新行FileOutputStream
,所以我在每个分数之间输入了一个空格。因此,我想要做的是当玩家点击submit
程序将打开文件并读取保存的任何当前数据。它将它保存到一个String Array
,每个元素都是文本文件中的五个分数之一,当它在文件中点击一个“空格”时,它会将刚刚读取的分数添加到写入数组元素中
我目前拥有的代码如下:
String space = " ";
String currentScoreSaved;
String[] score = new String[5];
int i = 0;
try
{
BufferedReader inputReader = new BufferedReader(new InputStreamReader(openFileInput("localHighScore.txt")));
String inputString;StringBuffer stringBuffer = new StringBuffer();
while ((inputString = inputReader.readLine()) != null && i < 6)
{
if((inputString = inputReader.readLine()) != space)
{
stringBuffer.append(inputString + "\n");
i++;
score[i] = stringBuffer.toString();
}
}
currentScoreSaved = stringBuffer.toString();
FileOutputStream fos = openFileOutput("localHighScore.txt", Context.MODE_PRIVATE);
while (i < 6)
{
i++;
fos.write(score[i].getBytes());
fos.write(space.getBytes());
}
fos.write(localHighScore.getBytes());
//fos.newLine(); //I thought this was how you did a new line but sadly I was mistaken
fos.close();
}
catch(Exception e)
{
e.printStackTrace();
}
现在您会注意到,如果达到新的高分,这不会重新排列分数。我计划下一步做的事情。目前,我只是想让程序执行在当前数据中读取的主要内容,将其粘贴到数组中,然后将其与新分数一起打印回该文件
任何想法这可能如何工作,因为目前即使我事先在文本文件中得分,它也没有打印任何内容