2010-11-30 8 views
0

est-il un moyen de sortir que nous pouvons rendre les données dans un fichier texte persistant? Chaque fois qu'un utilisateur finit de jouer à un jeu, dans son programme, son nom et son score respectif sont écrits dans un fichier texte. Lorsque le joueur suivant arrive, le précédent est écrasé. depuis que j'écris en mode écriture, je ne suis pas sûr si le mode ajout est pris en charge pour enregistrer des scores de ce genre dans blackberry ... toutes les suggestions sont les bienvenusécrire au fichier texte dans blackberry

+1

texte String = cs.getText() + » « + (écoulé/34); outStream.write (text.getBytes()); cs.getText() obtient le nom de l'utilisateur et écoulé/34 génère score.Ces 2 entités sont écrites correctement, mais comment puis-je faire ce travail sans perturber les entrées précédentes ... de sorte que lorsque je visite le fichier plat, je dois obtenir un liste des noms et leurs scores. –

+2

Pour autant que je sache, il n'y a pas de mode ajout dans BlackBerry, mais cela devrait être simple à recréer. Il suffit de lire dans tout le fichier texte avant de l'écraser et de le réécrire lorsque vous allez écrire le fichier. Cependant, je suis toujours curieux de savoir pourquoi vous n'avez pas utilisé le PersistentStore et un Hashtable comme je l'ai recommandé à l'origine. Je pense vraiment que c'est une meilleure approche et si vous postez les problèmes que vous rencontrez, je ferai de mon mieux pour y répondre. – Jonathan

+0

Comme Jonathan l'a mentionné; jetez un oeil à la PersistentStore: j'ai écrit un exemple de son utilisation ici: http://stackoverflow.com/questions/3805182/how-do-i-use-the-persistent-object-store-in-blackberry/3808672 # 3808672 Cela devrait être plus rapide et plus simple. – eSniff

Répondre

3

Vous devriez vraiment utiliser le PersistentStore pour stocker ce type d'information - c'est beaucoup plus facile à utiliser et probablement plus fiable que d'essayer d'écrire des fichiers.

Cependant, si vous insistez sur l'écriture de fichiers, voici le code général d'ouvrir un fichier pour annexant:

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: Maintenant que vous savez comment les scores et les noms sont générés, guidez-moi comment implémenter Hashtables dans ce ... et d'ailleurs, à chaque fois sur une nouvelle entrée de joueurs la table devrait être mise à jour automatiquement. ... Lorsque je visite l'icône des meilleurs scores, je dois être en mesure de voir toute la liste des noms et leurs scores ... s'il vous plaît suggérer la façon de le faire. –

+0

Vous devriez vraiment poser une nouvelle question pour cela, mais voici une brève explication. Créer une nouvelle hashtable et mettre les scores comme ceci: hashtable.put (, ). Lorsque vous avez besoin d'une liste des scores, appelez hashtable.keys(), faites défiler les clés et imprimez les scores pour chaque utilisateur. – Jonathan