2010-07-27 6 views
10

Je sauvegarde les détails dans un fichier out.txt qui a créé un fichier texte dans data/data/new.android/files/out.txt. Je suis en mesure d'ajouter des informations au texte, cependant, je suis incapable de lire ce fichier. J'ai utilisé les procédures suivantes pour lire le fichier:Comment lire un fichier texte sous Android?

File file = new File(activity.getDir("data", Context.MODE_WORLD_READABLE), "new/android/out.txt"); 
BufferedReader br = new BufferedReader(new FileReader(file)); 

Quelqu'un peut-il s'il vous plaît me aider à résoudre ce problème?

Cordialement, Ensoleillé.

+0

ce que signifie « incapable de lire ce fichier »? – RoflcoptrException

+0

Je veux dire, j'essaie de lire le contenu du fichier out.txt – sunny

Répondre

12

Vous pouvez lire une ligne à la fois avec ceci:

FileInputStream fis; 
final StringBuffer storedString = new StringBuffer(); 

try { 
    fis = openFileInput("out.txt"); 
    DataInputStream dataIO = new DataInputStream(fis); 
    String strLine = null; 

    if ((strLine = dataIO.readLine()) != null) { 
     storedString.append(strLine); 
    } 

    dataIO.close(); 
    fis.close(); 
} 
catch (Exception e) { 
} 

Changez le cas de temps pour tout lire.

+1

openFileInput ne fonctionne pas –

+1

aussi readline est déconseillé, donc ne pas utiliser ci-dessus –

14

@ La réponse d'hermy utilise dataIO.readLine(), qui est maintenant obsolète, donc des solutions alternatives à ce problème peuvent être trouvées à How can I read a text file in Android?. J'ai personnellement utilisé la réponse @ SandipArmalPatil ... a fait exactement ce que nécessaire.

StringBuilder text = new StringBuilder(); 
try { 
    File sdcard = Environment.getExternalStorageDirectory(); 
    File file = new File(sdcard,"testFile.txt"); 

    BufferedReader br = new BufferedReader(new FileReader(file)); 
    String line; 
    while ((line = br.readLine()) != null) { 
       text.append(line); 
       text.append('\n'); 
    } 
    br.close() ; 
}catch (IOException e) { 
    e.printStackTrace();   
} 

TextView tv = (TextView)findViewById(R.id.amount); 
tv.setText(text.toString()); ////Set the text to text view. 
7

Il suffit de mettre votre fichier (ie. De votrefichier nommé) dans la résolution/dossier brut (vous pouvez créer si si n'existe pas) à l'intérieur de votre projet. La ressource R.raw.yourfile sera générée automatiquement par le sdk. Pour obtenir une chaîne du fichier texte, il suffit d'utiliser le code proposé par Vovodroid dans le poste suivant: Android read text raw resource file

String result; 
    try { 
     Resources res = getResources(); 
     InputStream in_s = res.openRawResource(R.raw.yourfile); 

     byte[] b = new byte[in_s.available()]; 
     in_s.read(b); 
     result = new String(b); 
    } catch (Exception e) { 
     // e.printStackTrace(); 
     result = "Error: can't show file."; 
    } 
Questions connexes