web-dev-qa-db-fra.com

Chargez un fichier texte simple dans Android Studio

Vous avez un tout nouveau projet en utilisant le nouveau Android Studio IDE de Google.

J'essaie de charger un simple fichier texte à l'aide d'un InputStreamReader. Je reçois une exception de fichier introuvable. Maintenant, il n'y a plus d'actif/dossier. J'ai essayé d'en créer un et d'ajouter mon fichier à de nombreux endroits différents (à la racine du projet, à la racine du fichier .Java, etc ...) J'ai essayé de déplacer le fichier mais de ne pas le récupérer a trouvé.

Maintenant, cela n'a jamais été un problème avec Eclipse car il existe un dossier d'actifs créé par n'importe quel modèle.

Est-ce que quelqu'un sait où les actifs doivent aller ou comment les charger?

Voici le code utilisé, il échoue à .open ():

InputStream iS = resources.getAssets().open("bla.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(iS));

J'ai également essayé ce code dans Eclipse, cela fonctionne et le contenu du fichier est chargé. Il y a donc probablement une étape nécessaire dans Android Studio.

30
Yohann T.
  1. Étape 1: ouvrez le fichier Name_Project-Name_Project.iml.
  2. Voir la ligne: option name = "ASSETS_FOLDER_RELATIVE_PATH" value = "/ src/main/assets"
  3. Étape 2: Créez un sous-dossier "assets" dans le dossier principal.
  4. Étape 3: Mettez le fichier dans ce dossier.
  5. Étape 4: chargez-le. Terminé.
87
FIT226557

La bonne réponse n'a pas fonctionné exactement pour moi. Cela marche:

Accédez à la vue Projet, puis accédez à app/src/main et créer un nouveau répertoire assets

pour charger le fichier:

   InputStream is = getApplicationContext().getAssets().open("bla.txt");

ou:

   InputStream is = context.getAssets().open("bla.txt");

puis le convertir en chaîne comme vous le souhaitez, exemples ici

vidéo détaillée comment le faire (pas le mien)

2
Nagmon

Ce code fonctionnera pour vous et récupérera toutes les données du fichier.

public class Quiz extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_quiz);
    try {
        PlayWithRawFiles();
    } catch (IOException e) {
        Toast.makeText(getApplicationContext(),
                "Problems: " + e.getMessage(), Toast.LENGTH_LONG).show();
    }
}// onCreate

public void PlayWithRawFiles() throws IOException {
    String str="";
    StringBuffer buf = new StringBuffer();
    InputStream is = this.getResources().openRawResource(R.raw.ashraf);
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    if (is!=null) {
        while ((str = reader.readLine()) != null) {
            buf.append(str + "\n" );
        }
    }
    is.close();
   TextView tv=(TextView)findViewById(R.id.tv1);
    tv.setText(buf.toString());


}//
        }
1
Ashraf