Android工程的assets和res/raw目录解析

     在安卓工程目录下面经常会有assets和res/raw这两个文件目录,而且我们都知道在这两个文件夹中存放的资源一般不要大于1M;

     这两个文件目录里的文件都会直接在打包apk的时候直接打包到apk中,携带在应用里面供应用访问,而且不会被编译成二进制;

     他们的不同点在于:1、assets中的文件资源不会映射到R中,而res中的文件都会映射到R中,所以raw文件夹下的资源都有对应的ID;2、assets可以能有更深的目录结构,而res/raw里面只能有一层目录;3、资源存取方式不同,assets中利用AssetsManager,而res/raw直接利用getResource(),openRawResource(R.raw.fileName),很多人认为是R.id.filename,其实正确的是R.raw.filename,就像R.drawable.filename一样,整体表示一个ID值,并非是R.id.filename;

    示例代码如下:

    1、res/raw:

                StringBuilder sb = new StringBuilder();
                InputStream in = null;
                in = getResources().openRawResource(R.raw.introduction);
                if (in != null) {
                    InputStreamReader isr = new InputStreamReader(in);
                    BufferedReader br = new BufferedReader(isr);
                    char [] buf = new char[1024];
                    int len = 0;
                    while ((len = br.read(buf)) > 0) {
                        sb.append(buf, 0, len);
                    }
                } else {
                    Log.e(TAG, "Read introduction file error");
                    return;
                }

    2、assets:

AssetManager assetManager = getAssets();//获取AssetManager
InputStream in = assetManager.open(fileName);

     


转载于:https://my.oschina.net/limiaoneu/blog/539879

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值