2017-09-23 6 views
1

J'essaie d'ajouter des données de texte au fichier "fav.txt". Je peux seulement ajouter un article au dossier et énuméré. Comment puis-je ajouter un ou plusieurs éléments au fichier et à la liste? Ceci est mon code pour ajouter des éléments au fichier.openFileOutput obtient des données mais ne les liste pas

private void writeToFile(String data,Context context) { 
    try { 

     FileOutputStream outputStream; 
     outputStream = openFileOutput("fav.txt", Context.MODE_PRIVATE); 
     outputStream.write(data.getBytes()); 
     outputStream.close(); 
    } 
    catch (IOException e) { 
     Log.e("Exception", "File write failed: " + e.toString()); 
    } 
} 

et ce code est lu à partir du fichier

public List<String> listele(Context context) throws FileNotFoundException { 
     InputStream inputstream=context.openFileInput("fav.txt"); 
     List<String> listem=new ArrayList<>(); 
    try{ 
     InputStreamReader readeer=new InputStreamReader(inputstream); 
     BufferedReader reader=new BufferedReader(readeer); 
     String line; 
     while((line=reader.readLine())!=null) 
     { 
      listem.add(line); 
     } 
     reader.close(); 
     return listem; 
    } 
    catch (Exception e) 
    { 

     e.printStackTrace(); 
     return null; 
    } 
} 

Il fonctionne mais seulement retourner un article? Comment puis-je corriger ce code?

+0

Que voulez-vous sauvegarder exactement dans votre fichier? –

+0

@DimaKozhevin uniquement les éléments de texte d'edittext, lorsque les utilisateurs cliquent sur le bouton – omer1596

+0

Voulez-vous écrire plusieurs chaînes? de lire toutes les données d'un fichier? –

Répondre

0

J'ai vérifié le code semblable à la vôtre:

public static List<String> listele(String fileName) throws FileNotFoundException { 
    InputStream inputstream = new FileInputStream(fileName); 
    List<String> listem = new ArrayList<>(); 
    try { 
     InputStreamReader readeer = new InputStreamReader(inputstream); 
     BufferedReader reader = new BufferedReader(readeer); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      listem.add(line); 
     } 
     reader.close(); 
     return listem; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; 
    } 
} 

avec un fichier d'entrée exemple.txt contenant:

line1 
line2 

liste Retourné a eq taille. 2, donc probablement, votre fichier ne contient qu'une seule ligne.

+0

je vous remercie pour la réponse, j'ai fait ce que vous avez fait mais ne fonctionne toujours pas, j'obtiens ce message "fav.txt: open failed: ENOENT (Pas de tel fichier ou répertoire) "et je l'ai fait sans .txt toujours la même erreur – omer1596

+0

Vérifiez que le nom de fichier est correct. Dans mon cas c'était _src/test/resources/example.txt_. Je l'ai chargé à partir du dossier de ressources de test –

+0

je chargeais à /data/data/com.project.readerone/files/fav, j'ai vérifié le fichier de test ne contient pas mon fichier – omer1596