android assets InputStream 慢?
2017-07-24 16:04
155 查看
最近在做从assets读取大文件中的片段内容,在以前读取sd卡文件使用FileInputStream很快,但是在切换到assets的InputStream就慢得抓狂了。。
究其原因是skip 的问题,废话不多讲,让assets的文件能以FileInputStream的方式读取:
首先将文件名后缀改成以下的:
使用getAssets().openFd(name)方法产生一个AssetFileDescriptor变量openFd,openFd.createInputStream()方法可产生FileInputStream对象,就可以让skip变快了,代价就是apk包会变大(http://blog.csdn.net/se7en1305687887/article/details/17389849 为什么要把文件名后缀改成上表?)。
究其原因是skip 的问题,废话不多讲,让assets的文件能以FileInputStream的方式读取:
首先将文件名后缀改成以下的:
/* these formats are already compressed, or don't compress well */ static const char* kNoCompressExt[] = { ".jpg", ".jpeg", ".png", ".gif", ".wav", ".mp2", ".mp3", ".ogg", ".aac", ".mpg", ".mpeg", ".mid", ".midi", ".smf", ".jet", ".rtttl", ".imy", ".xmf", ".mp4", ".m4a", ".m4v", ".3gp", ".3gpp", ".3g2", ".3gpp2", ".amr", ".awb", ".wma", ".wmv" };
使用getAssets().openFd(name)方法产生一个AssetFileDescriptor变量openFd,openFd.createInputStream()方法可产生FileInputStream对象,就可以让skip变快了,代价就是apk包会变大(http://blog.csdn.net/se7en1305687887/article/details/17389849 为什么要把文件名后缀改成上表?)。
相关文章推荐
- Android-汉语词典开发-assets,raw的InputStream数据流操作(文件分割合并)
- android studio inputstream getassets openrawresource new URL
- Android开发之资源目录assets与res/raw的区别分析
- Android中资源文件assets和Res下面raw文件的使用不同点
- assets,raw的InputStream数据流操作(文件分割合并)
- Android递归拷贝assets资源到指定目录
- (4.4.2.1)android raw与assets区别
- Android raw与assets区别
- 关于android library project里的assets
- Android 使用存放在存assets文件夹下的SQLite数据库
- Android开发随手记录-AS导出jar包 Android Studio生成包含assets的Jar 从Eclipse迁移到Android Studio,并打包指定文件到jar
- android BitMap、Drawable、inputStream及byte[] 互转
- Android开发实现读取Assets下文件及文件写入存储卡的方法
- unable to load script from assets 'index.android.bundl
- android assets 读图片
- Android 使用存放在存assets文件夹下的SQLite数据库
- android常见问题之jni读取assets资源文件(附源码)
- android 提取仅需要的美化文字,来压缩 assets 下的字体文件大小
- android webview 网络页面从本地(assets)加载js库
- Android中资源文件夹res/raw和assets的使用