Android中资源文件夹res/raw和assets的使用

*res/raw和assets的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

*res/raw和assets的不同点:
1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。
2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

*读取文件资源:

1.读取res/raw下的文件资源,通过以下方式获取输入流来进行写操作

InputStream is = getResources().openRawResource(R.id.filename);
2.读取assets下的文件资源,通过以下方式获取输入流来进行写操作

AssetManager am = null;
am = getAssets();
InputStream is = am.open(“filename”);

补充一下:在未知目录下有哪些文件,该去和获取这些文件的名称并把文件拷贝到目标目录中呢?(用于内置文件但不知道文件名称,需要筛选出想要的文件然后拷贝到目标目录中,推荐内置在assets文件夹中)
1.res/raw目录:
通过反射的方式得到R.java里面raw内部类里面所有的资源ID的名称,然后通过名称获取资源ID的值来读取我们想要的文件。(这个方法我没试过,有用过的同学麻烦发一段代码看看)。
2.assets目录:
getAssets().list(“”);来获取assets目录下所有文件夹和文件的名称,再通过这些名称再读取我们想要的文件。

assets:用于储藏必需打包到利用过程的静态文件,以便安排到装备中。与res/raw不同点在于,ASSETS扶持任意深度的子目录。这些文件不会生成任何资源ID,定然利用/assets开始(不包括它)的相对路径名。

res:用于储藏利用过程的资源(如图标、GUI格局等),将被打包到编译后的Java中。不扶持深度子目录

res/menu:储藏基于XML的菜单描写;

res/raw:储藏通用的文件, 该文件夹内的文件将不会被编译成二进制文件,按原样复制到装备上。

res/values:储藏字符串、尺寸值。

res/xml: 储藏通用的XML文件

三个特异的资源目录 /res/xml /res/raw 和 /assets

在android开发中,我们离不开资源文件的利用,从drawable到string,再到layout,这些资源都为我们的开发供给了极大的方便,不过我们平时大局部工夫接触的资源目录等闲都是下面这三个。

/res/drawable

/res/values

/res/layout

但android的资源文件并何止这些,下面就为大家推荐一下另外三个资源目录

/res/xml

/res/raw

/assets

率先是/res/xml ,这个目录中大家可能偶尔用到过,这里能够用来存储xml款式的文件,并且和其他资源文件一样,这里的资源是会被编译成二进制款式放到最后的安装包里的, 我们也能够穿越R类来拜会这里的文件,并且解析里面的内容,例如我们在这里储藏了一个名为data.xml的文件:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值