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.
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)
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());
}//
}