存放资源 assets文件夹和raw文件夹

时间:2023-01-25 06:38:42

1、概述

在写app的时候不可避免需要用到一些文件,或者是资源。而又不能放在drawable中

Android提供了两种存放未处理的资源方式:res/raw文件夹,assets文件夹

参考:

http://developer.android.com/guide/topics/resources/providing-resources.html

              raw        

Arbitrary files to save in their raw form. To open these resources with a raw InputStream, callResources.openRawResource() with the resource ID, which is R.raw.filename.

However, if you need access to original file names and file hierarchy, you might consider saving some resources in the assets/ directory (instead of res/raw/). Files in assets/ are not given a resource ID, so you can read them only using AssetManager.



http://blog.csdn.net/leichelle/article/details/7884052


*res/rawassets的相同点:

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


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

*读取文件资源:

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

·        InputStreamis =getResources().openRawResource(R.id.filename);  

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

·        AssetManageram =  getAssets();  

·        InputStreamis = am.open("filename");