1. 苏葳的备忘录首页
  2. 移动平台

Android中访问Assets目录下文件

android java AssetManager类可用于访问assets目录下文件,assets目录下存放的,也是资源文件,然而与res下相比有所不同:一、 存放在res/raw下的文件,会相应的生成ID,而在assets下的文件,不会生成ID;二、asset和res下的文件都是只能读不能写的;三、在AssertManager中不能处理单个超过 1MB的文件,不然会报异常,而第二种raw没这个限制。

用:

InputStream in = getResources().getAssets().open(fileName,AssetManager.ACCESS_RANDOM);

读取其中文件,当读取一个400多K的文件时,仍然正常,然而在读取一个7M多的文本时,虽然in.avaibile能显示出正确的流长度,也未报异常,但在read后,所得字符串长度为0。或许用raw格式访问方法可以读取,但考虑到很少在assets中放置如此大的文本,所以暂不管这一步。若读取存储卡上的文件,则不需用AssetManager类。可以自由访问。

另,open返回的是InputStream对象,虽open时有ACCESS_RANDOM模式,然而InputStream却没有类似seek的方法对应,不知如何实现随机读取。

原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/293.html

发表评论

邮箱地址不会被公开。 必填项已用*标注