【发布时间】:2023-04-06 03:00:02
【问题描述】:
在我的程序中,当玩家提交分数时,它会被添加到名为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();
}
现在您会注意到,如果达到新的高分,这不会重新排列分数。我计划下一步做的事情。目前我只是想让程序执行在当前数据中读取的主要内容,将其粘贴在一个数组中,然后将其与新分数一起打印回该文件
关于这可能如何工作的任何想法,因为目前即使我事先在文本文件中有分数,它也没有打印任何内容
【问题讨论】:
-
为什么选择将信息存储在文本文件中?
-
因为我认为这对于项目的这一部分来说是最简单的,而且我对 Android 缺乏了解
标签: java android eclipse text-files fileoutputstream