2014-04-11 68 views
1

我寫一個程序,它允許用戶玩老虎機的信息,然後保存他們的姓名和分數到一個文本文件中。在程序和老虎機遊戲結束的開始,有三個選項的菜單,用戶可以選擇:存儲和顯示多個用戶的一個文本文件

  1. 要玩新遊戲
  2. 查看成績
  3. 退出了比賽。

當用戶按2時,程序應該顯示每個遊戲的得分,而不僅僅是剛剛玩的遊戲;所以,每當用戶播放時,他們的信息應該被附加到已經存在的文件score.txt

我的問題是,每當我嘗試從這個文件中讀取,它永遠只顯示從比賽成績只是打。這裏是運行遊戲結束後的代碼:

System.out.println("Game over! Your score has been written to scores.txt" + name + "!"); 
System.out.print("Actions:\n"); 
System.out.println("1. Start a new game\n" + 
    "2. View scores\n" + 
    "3. Exit "); 

System.out.println("Please select an action: "); 
action = keyboard.nextInt(); 

while (action == 2) { 
    File myFile = new File("score.txt"); 
    Scanner inputFile = new Scanner(myFile); 

    if (myFile.exists()) { 
     while (inputFile.hasNext()) { 
      name = inputFile.nextLine(); 
      System.out.println("Name\n------\n" + name + "\n"); 
      total = inputFile.nextDouble(); 
      System.out.printf("Scores\n------\n$%.2f\n", total); 
      System.out.println(); 
     } 
    } else 
     System.out.println("There are no scores to display at this time."); 

    System.out.print("Actions:\n"); 
    System.out.println("1. Start a new game\n" + 
      "2. View scorse\n" + 
      "3. Exit "); 

    System.out.println("Please select an action: "); 
    action = keyboard.nextInt(); 
} 
+0

你是否已經通過調試器或使用println()來完成它,確保你的代碼執行了你認爲它的工作? –

+0

你有沒有檢查你的score.txt文件?它真的包含多個高分嗎? –

+0

這就是問題所在。它不包含超過一個分數。它應該包含每個跑過程序並玩過遊戲的用戶的分數,但它只存儲剛剛玩過的用戶的分數。它不會將每個玩家的數據追加到文本文件中,因爲我想要它,我不知道該怎麼做。 – user3525572

回答

0

如果您正在使用一個FileWriter確保您的第二個參數追加傳遞true。

try { 
    PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("score.txt", true))); 
    out.println(score); 
    out.close(); 
} catch (IOException e) { 
    //deal with the exception 
} 
相關問題