android assets InputStream 慢?

最近在做从assets读取大文件中的片段内容,在以前读取sd卡文件使用FileInputStream很快,但是在切换到assets的InputStream就慢得抓狂了。。

究其原因是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 为什么要把文件名后缀改成上表?)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值