2015-12-12 182 views
2

如何在正确的位置以降序将highscore追加到highscore.txt文件中?该方法使用先前创建的readHighScore(int score)方法来查找记录应插入的行号。这是我走到这一步:如何在java中追加文件

public static void recordHighScore(String name, int score){ 
      File file = new File("Test/highscore.txt"); 
      FileWriter fwriter = new FileWriter(file, true); 
      try{ 
       String userName = name+","+score; 
       fwriter.add(readHighScore(score), userName); 

      }catch(IOException io){ 
       System.out.println("Missing File!"); 

      } 

      /*Writes the high score into highscore.txt file, at the correct position (in descending order). This 
      method uses readHighScore() method to find the line number where the record should be 
      inserted.*/ 
     } 
+0

要附加到文件的中间文件或结束了吗? –

+0

我认为它应该是前10名,所以也许文件的结尾?我不确定。 – zk9

+0

如果您不需要文件顶部的旧信息,那么将数据读入内存,更改内存中的信息并再次保存会很容易。 –

回答

0

它,如果你想在年底追加的数据很容易,如果你想在中间添加数据几乎是不可能的。很容易读取内存中的所有文件,将其更改并再次保存所有文件,覆盖旧的信息。

例如:

// read file to arraylist 
Scanner s = new Scanner(new File("filepath")); 
List<Score> list = new ArrayList<Score>(); 
while (s.hasNext()){ 
    String[] a = s.next().split(","); 
    list.add(new Score(a[0], a[1]);); // Score is class with name and score fields 
} 
s.close(); 

// working with List<Score> 
// add new score to List<Score> 
// save List<Score> to file like in your code 
+0

你是如何做到的? – zk9

+0

我在我的帖子中添加示例 –

+0

谢谢,这非常有帮助 – zk9