How to access a file from asset/raw directory

早过忘川 提交于 2019-11-29 13:14:52

Place your text file in the /assets directory under the Android project and use AssetManager class as follows to access it.

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

Or you can also put the file in the /res/raw directory, from where the file can be accessed by an id as follows

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

Assets and resources are files on your development machine. They are not files on the device.

For assets, use open() on AssetManager to get an InputStream on your asset.

Also, FWIW:

  • Uri.parse("file:///android_asset/raw/default_book.txt").toString() is pointless, as it gives you the same string that you started with

  • file:///android_asset/ only works for WebView

As the actual question wasn't sufficiently answered, here we go

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

context can be this or getActivity() or basically any other context

Important is to include the folder before the filename separated by an /

InputStream is = getAssets().open("default_book.txt");
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!