2010-11-27 11 views
0

Salut, J'ai collé mon code ici. Dialog.inform contient une valeur "longue" qui correspond au score d'un joueur. Si je veux l'écrire dans un fichier, j'ai besoin de le convertir en int de byte.Je reçois la valeur indésirable écrite dans le fichier.Peut-on m'aider avec cela? Je veux imprimer le contenu de (ecoulé/34)Écrire dans un fichier dans BlackBerry

Dialog.inform ("Félicitations vous avez marqué:" + (écoulé/34));

  try 
      { 

     FileConnection fc = (FileConnection)Connector.open("file:///SDCard/Rashmi.txt"); 
     // If no exception is thrown, then the URI is valid, but the file may or may not exist. 
     if (!fc.exists()) 
     { 
      fc.create(); // create the file if it doesn't exist 
     } 
     OutputStream outStream = fc.openOutputStream(); 
     int lp=safeLongToInt(elapsed/34); 
     outStream.write("Rashmi".getBytes()); 
     outStream.write(lp); 
     outStream.close(); 
     fc.close(); 

Répondre

1

Bon, puisque vous sauvegardez le score dans un fichier, vous voulez probablement que ce score soit visible sous forme de chaîne. Lorsque vous affichez ce fichier, je devine que vous voyez le mot "Rashmi" suivi d'un caractère indésirable. La raison pour laquelle la variable lp n'est pas imprimée correctement est que la valeur de chaîne d'un nombre est différente de sa valeur numérique. Par exemple, la valeur binaire de 2 est 10 alors que la valeur ASCII pour '2' est 00110010 (ou 50 en décimal). Lorsque vous appelez outStream.write (lp), cela imprime la valeur numérique de lp plutôt que sa valeur de chaîne. En bref, vous devez convertir la valeur numérique en une chaîne. Essayez quelque chose comme ceci:

String text = "Rashmi" + (elapsed/34); 
outStream.write(text.getBytes()); 
+0

Merci encore ... Jonathan ... J'ai travaillé :) Je peux afficher le nom et les scores maintenant :) –