res/raw目录和asset目录的区别

*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下的文件资源,通过以下方式获取输入流来进行写操作

  • assets文件夹里面的文件都是保持原始的文件格式,需要用AssetManager以字节流的形式读取文件。
    1.
    先在Activity里面调用getAssets()来获取AssetManager引用。
    2.
    再用AssetManager的open(String
    fileName, int accessMode)
    方法则指定读取的文件以及访问模式

就能得到输入流InputStream。 
 
       3. 然后就是用已经open file 的inputStream读取文件,读取完成后记得inputStream.close()
 
       4.调用AssetManager.close()关闭AssetManager。

来源: <http://www.cnblogs.com/leizhenzi/archive/2011/10/18/2216428.html>

来自为知笔记(Wiz)

时间: 2024-10-16 11:05:28

res/raw目录和asset目录的区别的相关文章

Android Preference存储、res/raw、asset、openFileOutput、sdcard存储、Cache详解

*res/raw.assets.其它存储的相同点: 两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. 两者都是只读,是不能存储数据的目录. 相同都可以放文件. *res/raw.assets.其它存储的不同点: res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename:assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类. res/raw不可以有目录结构,而assets则可以有目

assets res/raw 存放资源的限制 以及 读取方法

res/raw和assets的相同点: 两者目录下的文件在打包后会原封不动的保存在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 和 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

Android res/raw vs assets

common: 1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制. difference: 1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename:assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类.2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹 *读取文件资源: res/raw:InputStream is

android资源目录---assets与res/raw区别

android资源目录---assets与res/raw的不同 Android 2011-05-24 14:40:21 阅读20 评论0   字号:大中小 订阅 assets:用于存放需要打包到应用程序的静态文件,以便部署到设备中.与res/raw不同点在于,ASSETS支持任意深度的子目录.这些文件不会生成任何资源ID,必须使用/assets开始(不包含它)的相对路径名. res:用于存放应用程序的资源(如图标.GUI布局等),将被打包到编译后的Java中.不支持深度子目录 res/menu:

assets与res/raw资源目录的区别

Android : assets与res/raw资源目录的区别 Author : Aoyousatuo Zhao http://blog.sina.com.cn/aoyousatuo 一,简介 在应用的开发中,当我们创建一个新的Android工程后,我们会发现工程中包含了一个目录assets,另外当我们察看一些示例工程的时候,有时会发 现在该工程的资源目录下会有一个raw目录(res/raw).那么assets和raw目录有什么用处呢?下面笔者将给与解释. 二,相同 assets和res/raw

android 打开 res raw目录 中 数据库文件

韩梦飞沙  韩亚飞  [email protected]  yue31313  han_meng_fei_sha 安卓不能直接打开 res raw 中的 数据库 文件. 通过 资源 获取资源 方法 , 然后在通过 打开资产资源方法 获得 res raw中的  输入流  对象, 然后将 输入流对象 中的数据 写入 其他目录中的相应文件中. 然后 通过 sqlite数据库的 打开或者创建数据库方法  来打开任意目录中的 sqlite

AssetsUtils【读取assets、res/raw、./data/data/包名/目录下的文件】

版权声明:本文为博主原创文章,未经博主允许不得转载. 前言 封装了以下功能: 1.读取assets目录下的资源html.文件.图片,将文件复制到SD卡目录中: 2.读取res/raw目录下的文件内容: 3.读写./data/data/包名/下的文件: 效果图 代码分析 最常用的方法:getStringFromAssert(Context mContext, String assetsFilePath)[读取assets目录中的文件字符串] 使用步骤 一.项目组织结构图 注意事项: 1.  导入类

如何将打开res/raw目录中的数据库文件?

在Android中不能直接打开res /raw目录中的数据库文件,而需要在程序第一次启动时将该文件复制到手机内存或SD卡的某个目录中, 然后再打开该数据库文件. 复制的基本方法是使用getResources().openRawResource方法获得res/raw目录中资源的 InputStream对象, 然后将该InputStream对象中的数据写入其他的目录中相应文件中. 在Android SDK中可以使用SQLiteDatabase.openOrCreateDatabase方法来打开任意目