assets与raw
来源:互联网 发布:迷雾 电视剧 知乎 编辑:程序博客网 时间:2024/06/14 01:11
二者区别
相同点
两者目录中文件经打包后原封不动保存在apk包中,不同于xml、java文件被平台编译成二进制,可存放图片、html、js、css 等文件,作为原始资源使用。
不同点
- res/raw中文件会被映射到R.Java文件中,访问时直接使用资源ID,即
R.id.filename
;assets中文件不会被映射到R.java中,访问时需通过AssetManager类。 - res/raw中不能有目录结构,而assets中可存在目录结构,即assets目录中可再建文件夹。
raw读取
思路
读取文件时,先把文件一些数据内容读取并保存到缓冲区。若所需内容已在缓冲区,则读取缓冲区数据内容。若缓冲区无所需内容,则先从文件读取数据内容并保存到缓冲区,而后从缓冲区读取数据内容。这样便可减少对文件操作次数,从而提高性能。缺点是需额外内存做缓冲区。
步骤
- 首先调用
Context.getResource
获取当前应用程序上下文的Resources引用 - 然后调用
openRawResource(int id)
得到InputStream - 最后操作
InputStream
获取数据内容
代码
InputStream is=resources.openRawResource(R.raw.hubin);BufferedInputStream buf = new BufferedInputStream(is); void readRawFile() { String content; Resources resources=this.getResources(); InputStream is=null; try{ is=resources.openRawResource(R.raw.hubin); byte buffer[]=new byte[is.available()]; is.read(buffer); content=new String(buffer); Log.i(tag, "read:"+content); } catch(IOException e) { Log.e(tag, "write file",e); } finally { if(is!=null) { try{ is.close(); }catch(IOException e) { Log.e(tag, "close file",e); } } } }
注意
资源文件放置在res/raw目录中,R类会自动提供目录中资源文件id,可直接使用。
assets读取
思路
可通过输入流来读取资源文件。
代码
AssetManager am = null; am = getAssets(); InputStream is = am.open("filename");
注意
Android系统处理asserts存在bug,AssetManager中不能对单个超过1MB文件进行处理,否则会报异常;raw无此限制。
阅读全文
0 0
- assets与raw
- assets与res/raw区别
- android raw与assets区别
- android raw与assets区别
- android raw与assets区别
- android raw与assets区别
- android raw与assets资源
- android raw与assets区别
- android raw与assets区别
- android raw与assets区别
- android raw与assets区别
- 目录raw与assets区别
- assets与raw数据读取
- android raw与assets区别
- Android raw与assets区别
- android raw与assets区别
- android assets与raw资源
- android raw与assets区别
- 查找文件的类 struct _finddata_t结构体用法
- POJ 1236 Network of Schools(tarjan缩点)
- oracle sequences 时间加序列的主键怎样取?
- Hibernate之多表查询
- c#命名
- assets与raw
- 腾讯云首推私有云存储,意欲抢占更多用户市场
- 解决聊天页面输入法和表情面板切换界面闪动问题
- oracle buffer cache
- PAT_1088. Rational Arithmetic
- 【Android】DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs
- Java面试题下
- 新手入门——详解时间序列预测(用Python)
- 一张图搞定OAuth2.0