2016-04-13 17 views
1

İnternette bulduğum bir 2048 oyununu değiştiriyorum, böylece oyunu kaybettiğinde veya sıfırladığında bir oyuncunun son verilen skorunu yazdıracak. Ancak, tüm puanları kaydetme konusunda bir sorun yaşıyorum. Aslında çalışır, ancak program, oynatıcı her sıfırlandığında veya kaybederken dosyayı üzerine yazar.Yazıcımın dosyanın üzerine yazmasını nasıl engellerim?

İşte yazar sınıfım.

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"); 
     } 
    } 
} 

Sadece, bu, yazarın ihtiyaç duyduğu tam anıdır. Emin değilim (

FileOutputStream is = new FileOutputStream(highScores, true); 
+0

Aradığınız kelime ekleniyor – flakes

cevap

3

Eğer overwrite istemiyorum ama burada devam etmek nasıl dosyanın sonuna yeni veriler append istiyorsanız

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

dosya adının sonuna bir zaman damgası ekleme:) daha iyi bir yeni dosyanın oyun biter her zaman oluşturmak ise.

1

başka çözüm:

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...) 
İlgili konular