2010-11-30 24 views
0

テキストファイルのデータを永続化できる方法はありませんか?ユーザがゲームを終えるたびに、私のプログラムで彼の名前とそれぞれのスコアがテキストファイルに書き込まれます。次のプレイヤーが来たら、前のプレイヤーは上書きされます。書き込みモードで書いているので、追加モードがブラックベリーでこの種のスコアを保存するためにサポートされているかどうかはわかりません...どの提案も歓迎ですブラックベリーのテキストファイルに書き込む

+1

文字列のテキストを= cs.getText()+」「+(経過は、/ 34)。 outStream.write(text.getBytes()); cs.getText()はユーザーの名前を取得し、経過時間/ 34はスコアを生成します。これらの2つのエンティティは正しく書かれていますが、以前のエントリに影響を与えることなくこの作業を行うにはどうすればよいですか?名前とそのスコアのリスト。 –

+2

私が知る限り、BlackBerryには追加モードはありませんが、これは簡単に再作成する必要があります。上書きする前にすべてのテキストファイルを読み込んでから、ファイルを書き込むときに書き戻してください。しかし、私が最初にお勧めしたようにPersistentStoreとHashtableを使用していない理由についてはまだ興味があります。私はそれがより良いアプローチだと思っています。あなたがそれを持っている問題を投稿すれば、私はそれらに答えるために全力を尽くします。 – Jonathan

+0

ジョナサンが言及したように。 PersistentStoreを見てください:私はここにその使用例を書いています:http://stackoverflow.com/questions/3805182/how-do-i-use-the-persistent-object-store-in-blackberry/3808672 #3808672。それはより速く、より簡単でなければなりません。 – eSniff

答えて

3

本当にこのタイプの情報を保存するには、使いやすく、ファイルを書き込もうとするよりも信頼性が高いでしょう。あなたはファイルの書き込みを主張する場合

しかし、ここで追加するために、ファイルを開くための一般的なコードです:

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; 
} 
+0

@ Jonathan:今度はスコアと名前がどのように生成されるのか知っているので、これでハッシュテーブルをどのように実装すればいいのですか...それは新しいプレーヤーのエントリに毎回自動的に更新されるはずです。 ...ハイスコアアイコンを訪ねると、名前とスコアのすべてのリストを見ることができなければなりません。どうすればいいのかを教えてください。 –

+0

あなたは本当にそれについて新しい質問をするべきですが、ここで簡単な説明があります。新しいハッシュテーブルを作成し、次のようにスコアを入れます:hashtable.put()。スコアのリストが必要な場合は、hashtable.keys()を呼び出し、キーをループして各ユーザーのスコアを出力します。 – Jonathan

関連する問題