2016-04-13 1 views
1

私はインターネットで見つけた2048ゲームを修正していますので、彼がゲームを失うかリセットするときに最後に与えられたスコアをプリントアウトします。しかし、私はすべてのスコアを保存することに問題があります。それは実際には動作しますが、プログラムはプレーヤーがリセットまたは失うたびにファイルを上書きします。投稿者がファイルを上書きしないようにするにはどうすればよいですか?

私のライタークラスです。

class writer { 
    public void writing(int desiredText) { 
     try { 
      //Whatever the file path is. 
      File highScores = new File("C:/Users/Anthony/Desktop/Java/highScores.txt"); 
      FileOutputStream is = new FileOutputStream(highScores); 
      OutputStreamWriter osw = new OutputStreamWriter(is);  
      Writer w = new BufferedWriter(osw); 

      String desiredText_string = Integer.toString(desiredText); 
      w.write(desiredText_string); 
      w.close(); 
     } catch (IOException e) { 
     System.err.println("Problem writing to the file highScores.txt"); 
     } 
    } 
} 

これは、ライターが必要な正確な瞬間です。

public void keyPressed(KeyEvent e) { 
    if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { 
write.writing(myScore); 

resetGame();   
    } 
if (!canMove()) { 
    write.writing(myScore); 

    myLose = true; 
} 

... (code is continued on...) 
+0

あなたが探している単語は、ファイルが追加されています – flakes

答えて

3

あなたがoverwriteにしたくないが、あなたはここで、ファイルの末尾に新しいデータをappendしたい場合は、続行する方法です:

FileOutputStream is = new FileOutputStream(highScores, true); 
1

別の解決策(私はわかりませんゲームが終了するたびに新しいファイルを作成することです。

Date date = new Date(); 
File highScores = new File("C:/Users/Anthony/Desktop/Java/highScore"+date+".txt"); 

ファイル名の末尾にタイムスタンプを追加する。

関連する問題