2016-04-09 63 views
1

Ne yaptım, dosyada yeni bir satır üzerine yeni bir veri yazmamıştım. Nasıl düzeltebilirim? verir) (örnek Mary'nin puanı içinYeni bir satırdaki veriyi bir dosyada yazamıyorum

100 ve demircinin puanı 150 olduğunu, ancak txt dosyasında ben yeni bir çizgide smith 150 istiyorum

mary 100smith 150 

public class HighScores { 
public HighScores(){ 

    String txt = ""; 
    Scanner sc = null; 
    PrintWriter pw = null; 
    File Checker = null; 
    try{ 
     Checker = new File("highScores.txt"); 
     if(!Checker.exists()){ 
      Checker.createNewFile(); 
     } 


sc = new Scanner(new File("highScores.txt")); 
     while(sc.hasNextLine()){ 
      txt = txt.concat(sc.nextLine()+"\n"); 
     } 

     String score=String.valueOf(Game3.score); 
     String name = NewPlayer.name; 

     txt = txt.concat(name + " "+ score +"\n"); 
     pw = new PrintWriter(Checker);// writing the checker 
     pw.write(txt +"\r\n"); 

pw.println olduğunu aynı sorun da.

}catch(FileNotFoundException fnfe){ 

     fnfe.printStackTrace(); 
    }catch(IOException ioe){ 
     ioe.printStackTrace(); 
    }finally{ 
     sc.close(); 
     pw.close(); 
    } 

} 

} 
+1

kullanın. PrintWriter'ınızı açın ve bir EOL ile izleyen bir metin yazmak için println() öğesini veya ardından bir EOL ile takip edilmeyen bir metin yazmak için print() öğesini kullanın. Ve Java adlandırma kurallarına uyun: değişkenler küçük harfle başlar. –

+0

println kullanıyorum, Ama yine de ikinci veri yeni bir satırda değildi – hekinci

+0

Tüm kodunuzu değiştirmenin ve bu yeni yorumu 1 dakikadan daha kısa bir sürede yazmanın bir yolu yok. Yorumumu tekrar oku. –

cevap

0

Bu kod çok tehlikeli, ancak aslında beklediğiniz şeyi yapmalı.

Muhtemelen ortaya çıkan dosyayı bir Windows notepad uygulamasıyla görüntülüyorsunuz. Diğer Windows uygulamalarının çoğunda olduğu gibi "\r\n" yeni satır ayırıcı olarak bekler.

+0

Nope Ben ortaya çıkan dosyayı JCreator ile görüntülüyorum. – hekinci

+0

Bu yine de neden olabilir =) Yeni satırların gerçekten yazılıp yazılmadığını ve olup olmadıklarını görmek için 'txt'' 'System.out' öğesine çıkış yapmayı deneyin. satır ayırıcılarını "\ r \ n" olarak değiştirmeyi deneyin. – ThatDamnRusski

0

\ n`or '\ r \ n' 'concat() ve sabit kod kullanmayın aşağıdaki kodu

public class HighScores { 
public HighScores() { 
    String txt = ""; 
    Scanner sc = null; 
    PrintWriter pw = null; 
    File Checker = null; 
    try { 
     Checker = new File("highScores.txt"); 
     if (!Checker.exists()) { 
      Checker.createNewFile(); 
     } 

     sc = new Scanner(new File("highScores.txt")); 
     while (sc.hasNextLine()) { 
      txt = txt.concat(sc.nextLine() + "\n"); 
     } 

     String score = String.valueOf(Game3.score); 
     String name = NewPlayer.name; 

     txt = txt + name + " " + score; 
     pw = new PrintWriter(Checker);// writing the checker 

     pw.println(txt); 
    } catch (FileNotFoundException fnfe) { 

     fnfe.printStackTrace(); 
    } catch (IOException ioe) { 
     ioe.printStackTrace(); 
    } finally { 
     sc.close(); 
     pw.close(); 
    } 
} 

}

+0

'var()/createNewFile()' kısmı her zamanki gibi anlamsızdır ve yalnızca kod bir yanıt değildir. Açıklamak zorundasın – EJP