2017-03-20 5 views
2

Je construis ma première application Android je recueille 3 champs de données simples et puis je vais les envoyer par e-mail à un utilisateur.Formatage FileOutputStream?

J'ai l'application en cours d'exécution je peux recueillir et afficher les données sur l'écran et je peux également envoyer les données par e-mail. mais les données sont simplement mises sur une ligne de texte avec des espaces de connaissance. J'utilise FileOutputStream pour écrire les données et j'ai ajouté du texte dans le flux pour casser les données ... mais cela ne semble pas être la meilleure voie? Que devrais-je faire? ci-dessous est un exemple avec 2 de mes champs et une chaîne de texte statique.

il sort comme des boules: 22 je voudrais qu'il ait des espaces ou des en-têtes. Je suppose que je pourrais ajouter fos.write ("" .getBytes()); faire un espace?

grâce

FileOutputStream fos = v.getContext().openFileOutput(file_name, MODE_PRIVATE); 

       fos.write("Balls: ".getBytes()); 
       fos.write(balls.getBytes()); 
       fos.write(strikes.getBytes()); 
       fos.close(); 
+0

'FileOutputStream fos = v.getContext(). OpenFileOutput (nom_fichier, MODE_PRIVATE)'. Cela devrait être 'OutputStream fos = v.getContext(). OpenFileOutput (nom de fichier, MODE_PRIVATE)'. – greenapps

Répondre

1

Pourquoi ne pas simplement construire la chaîne (s) d'abord, puis appeler getBytes() sur la chaîne résultante et le transmettre à fos.write()?

Exemple:

FileOutputStream fos = v.getContext().openFileOutput(file_name, MODE_PRIVATE); 
String bigstring = "Balls: " + balls + " Strikes: " + strikes; 
      fos.write(bigstring.getBytes()); 
      fos.close(); 

Si vous souhaitez insérer une nouvelle ligne dans la chaîne vous pouvez le faire by concatenating a new-line character en elle.

+0

qui a bien fonctionné! Merci. Je suis vraiment nouveau à ce sujet, je n'étais pas au courant de cela. – branedge

+0

pour ajouter la nouvelle ligne j'ai essayé mais cela n'a pas fonctionné String bigstring = "Balls:" + balles + "Strikes:" + frappe% n; – branedge

+0

Vous devez utiliser% n dans une chaîne de caractères, en dehors de cela, elle n'a pas de signification réelle. Par conséquent, 'String twolines =" première ligne "+"% n "+" deuxième ligne ";' –