Charger un simple fichier texte dans Android Studio

a obtenu un tout nouveau projet en utilisant le nouveau studio Android IDE de Google.

j'essaie de charger un simple fichier texte en utilisant un InputStreamReader . J'obtiens un fichier non trouvé exception. Maintenant, il n'y a pas d'actifs/ 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 encore obtenir le fichier n'est pas trouvé.

maintenant ça n'a jamais été un problème en utilisant Eclipse car il y a un dossier actif créé par n'importe quel modèle.

est-ce que quelqu'un sait où vont les biens ou comment les charger?

voici le code utilisé, il ne fonctionne pas .ouvert ():

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

j'ai aussi essayé ce code dans Eclipse, il fonctionne, et le contenu du fichier chargé. Donc il y a probablement une étape nécessaire dans Android Studio.

30
demandé sur Can 2013-05-29 22:21:21

3 réponses

  1. Étape 1: Open in Name_Project-Name_Project.iml fichier.
  2. voir la ligne : option name= "ASSETS_FOLDER_RELATIVE_PATH" value="/src/main / assets "
  3. Étape 2: Créer un sous-dossier "actifs" dans le dossier principal.
  4. Étape 3: Placer le fichier dans ce dossier.
  5. Étape 4: Le charger. Faire.
87
répondu FIT226557 2013-05-30 14:36:18

ce code vous conviendra.Il 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
répondu Ashraf 2017-09-11 20:21:22

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

aller à Project view puis aller à 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");

et puis le convertir en chaîne de n'importe quelle façon que vous voulez, exemples ici

vidéo détaillée de la façon de le faire (pas le mien)

0
répondu Nagmon 2018-05-07 12:12:21