2010-11-30 88 views
0

有沒有出路,我們可以在文本文件中的數據持久化?每次用戶完成玩遊戲時,在我的程序中,他的名字和各自的分數被寫入文本文件。當下一個玩家來到前一個玩家時,它會被覆蓋。因爲在寫模式在寫,我不知道追加模式是否支持保存這種在黑莓的分數......任何建議,歡迎寫入文本文件中,黑莓

+1

字符串文本= cs.getText()+」「+(過去/ 34);outStream.write(text.getBytes()); cs.getText()獲取用戶名和過去/ 34產生score.These 2個實體正確編寫的,但我怎樣才能使這項工作,而不會干擾以前的條目......所以,當我訪問平面文件,我必須得到一個名單及其得分列表。 – 2010-11-30 18:03:28

+2

據我所知,還沒有在黑莓追加模式,但是這應該是簡單的重現。在覆蓋它之前只需讀入所有的文本文件,然後在寫入文件時將其寫回。然而,我仍然好奇你爲什麼沒有像我最初推薦的那樣使用PersistentStore和Hashtable。我真的認爲這是一個更好的方法,如果你發佈你遇到的問題,我會盡我所能來回答他們。 – Jonathan 2010-11-30 18:39:18

回答

3

你真的應該使用PersistentStore存儲這種類型的信息 - 這是多少比試圖編寫文件更容易使用,可能更可靠。

但是,如果你堅持寫文件,這裏的通用代碼打開一個文件進行追加:

private OutputStream openFileForWriting(String filePath) { 
    try { 
     FileConnection fconn = (FileConnection) Connector.open(filePath); 
     // If no exception is thrown, then the URI is valid, but the file may or may not exist. 
     if (!fconn.exists()) { 
      fconn.create(); // create the file if it doesn't exist 
     } 
     return fconn.openOutputStream(fconn.fileSize()); 
    } catch (IOException ioe) { 
     System.out.println("Could not open " + filePath + " for writing"); 
    } 
    return null; 
}