2016-03-08 1 views
0

J'ai une application de jeu simple qui a 3 tableau de bord et j'ai besoin de sauvegarder les données. Je ne suis pas sûr si je devrais enregistrer ceci sur le stockage externe ou interne. J'ai réussi à enregistrer un fichier csv en externe mais lors des tests je l'ai trouvé deosnt fonctionne sur tous les appareils. Je cherche maintenant à enregistrer les données sur le stockage interne et à regarder le code d'enregistrement de fichier standard suivant.Android ajoutant plusieurs lignes au fichier de stroage interne

String FILE_NAME = "file.txt"; 
    try { 
     FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); 
fos.write(someText.toString().getBytes()); 
fos.close(); 
} catch (Exception e) { 
e.printStackTrace(); 
} 

La classe ne fournit aucune méthode nextLine().

Ma question est de devrais-je utiliser un stockage externe ou interne, et si j'utilise le stockage interne, comment puis-je séparer chaque ligne?

+0

Vous confondez au moins trois choses ici. Le stockage interne et externe n'a aucune influence sur la façon dont vous écrivez vos données; 'FileOutputStream' est pour l'écriture de données, pas pour la lecture, donc il n'y a pas de moyen sensé de fournir une méthode' nextLine() '. – JimmyB

+0

Conseil: utilisez 'SharedProperties'. - Si vous ne voulez pas faire cela, familiarisez-vous avec 'FileOutputStream',' FileInputStream', 'Writer',' Reader', 'BufferedWriter' et' BufferedReader' pour le fichier IO. – JimmyB

+0

'FileInputStream' n'a absolument rien à voir avec votre question. – EJP

Répondre

0

Rédaction:

String FILE_NAME = "file.txt"; 
try { 
    FileOutputStream fos = openFileOutput(FILE_NAME, Context.MODE_PRIVATE); 
    PrintWriter writer = new PrintWriter(new OutputStreamWriter(fos)); 
    writer.println(someText.toString()); 
    writer.println(someOtherText.toString()); 
    writer.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Lecture:

String FILE_NAME = "file.txt"; 
try { 
    FileInputStream fis = openFileInput(FILE_NAME, Context.MODE_PRIVATE); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); 
    String line; 
    while ((line = reader.readLine()) != null) { 
     System.out.println("Read line: " + line); 
    } 
    reader.close(); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
+0

C'est ce que je cherchais un simple wrapper pour analyser les données, acclamations –

+0

Il n'y a pas de méthode comme 'writeln()'. – EJP

+0

essayez println(); cela fonctionne –