web-dev-qa-db-fra.com

Comment accéder à un fichier depuis le répertoire asset / raw

avec ce code ci-dessous, j'essaie d'accéder au fichier qui est stocké dans asset/raw dossier, mais en obtenant null et

E/ERR: file:/Android_asset/raw/default_book.txt (No such file or directory)

erreur, mon code est:

private void implementingDefaultBook() {
    String filePath = Uri.parse("file:///Android_asset/raw/default_book.txt").toString();
    File   file     = new File(filePath);
    try {
        FileInputStream stream      = new FileInputStream(file);
    } catch (Exception e) {
        e.printStackTrace();
        Log.e("ERR ", e.getMessage());
    } catch (OutOfMemoryError e) {
        e.printStackTrace();
    }
}

enter image description here

13
DolDurma

Placez votre fichier texte dans le répertoire/assets sous le projet Android Android et utilisez la classe AssetManager comme suit pour y accéder.

AssetManager am = context.getAssets();
InputStream is = am.open("default_book.txt");

Ou vous pouvez également placer le fichier dans le répertoire/res/raw, d'où le fichier est accessible par un identifiant comme suit

InputStream is = 
context.getResources().openRawResource(R.raw.default_book);
18
Malik Ahsan

Les actifs et les ressources sont des fichiers sur votre machine de développement. Ce ne sont pas des fichiers sur l'appareil.

Pour les actifs, utilisez open() sur AssetManager pour obtenir un InputStream sur votre actif.

Aussi, FWIW:

  • Uri.parse("file:///Android_asset/raw/default_book.txt").toString() est inutile, car il vous donne la même chaîne que celle avec laquelle vous avez commencé

  • file:///Android_asset/ ne fonctionne que pour WebView

7
CommonsWare

Comme la question réelle n'a pas été suffisamment répondue, c'est parti

InputStream is = context.getAssets().openFd("raw/"+"filename.txt")

le contexte peut être this ou getActivity() ou fondamentalement tout autre contexte

L'important est d'inclure le dossier avant le nom de fichier séparé par un /

3
ueen
InputStream is = getAssets().open("default_book.txt");
0
Hussain Shabbir