私のプログラムでは、プレーヤーがスコアを送信すると、それは。というローカルテキストファイルに追加されますlocalHighScores
。これは、その特定のデバイスでプレーヤーが達成した上位5つのスコアのリストです。
FileOutputStream
(知っている場合は共有してください)を使用して改行を書き込む方法がわからなかったため、代わりに各スコアの間にスペースを入力しました。したがって、私がやろうとしているのは、プレーヤーがsubmit
プログラムをクリックするとファイルが開き、現在のデータが保存されていることを読み取ることです。それをに保存しますString Array
。各要素はテキストファイルの5つのスコアの1つであり、ファイルの「スペース」にヒットすると、読み取ったばかりのスコアが書き込み配列要素に追加されます。
私が現在持っているコードは次のとおりです。
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();
}
これで、新しいハイスコアが達成された場合、これによってスコアが再配置されないことがわかります。次にやろうと思っていること。今のところ、現在のデータで読み取られる主なことをプログラムに実行させ、配列に貼り付けてから、新しいスコアとともにそのファイルに出力しようとしています。
これがどのように機能するかについてのアイデア。現在、テキストファイルにスコアを入れていても何も出力されないためです。