2016-06-23 1 views
-1

私のプログラムのハイスコアをテキストファイルに書き込もうとしています。私はこのコードを持っており、それは働いています。ハイソクからテキストファイル

if(gameOver == true){ 
     int highscore = score; 
    String username = "Jay"; 



    try { 

     String content = username; 

     File file = new File("highscore.txt"); 



     FileWriter f = new FileWriter(file.getAbsoluteFile()); 
     BufferedWriter b = new BufferedWriter(f); 
     b.write(content + "\t" + "Score: " + highscore); 

     b.close(); 

     System.out.println("Score Saved"); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    } 

ただし、ゲームを再起動するたびに、ハイスコアが上書きされます。どのようにして次の行に書き込むようにして、それを最高のスコアで並べ替える方法がありますか?

FileWriter f = new FileWriter(file.getAbsoluteFile(), true); 

をそして、あなたが代わりに書き込みのappendメソッドを呼び出す必要があります: ジェイ

+2

は新しい 'のようなあなたの' FileWriter'を変更しますFileWriter(file.getAbsoluteFile()、true) 'です。これにより、彼は追加モード –

+0

@Jayになります。このFileWriterを試してください。f = new FileWriter(file.getAbsoluteFile()、true); – Darshit

+1

追加するには、追加モードで開く必要があります。しかし、とにかく最高のスコアでソートしたい場合は、最初にその中のすべてのデータを読み込み、最新の最高スコアを追加し、そのデータ構造をソートし(または最初のソートを使用して)ファイルに書き戻す必要があります。注:あなたは、あなたが「覚えておきたい」スコアの数を制限する方がよいでしょう。 – Fildor

答えて

0

がアペンドパラメータとしてFileWriterコンストラクタを使用

おかげ

b.append(content).append("\t").append("Score: " + highscore); 
関連する問題