Android中的assets文件读取读写操作是不可或缺的每个应用都会涉及到读写操作。这里将读写操作分成了四个部分
-
assetsassets文件读取夹中assets文件读取数据的读取
-
rawassets文件读取夹中的assets文件读取数据的讀取
-
Android内部存储assets文件读取的读写
-
Android外部存储assets文件读取的读写
一、读取assetsassets文件读取夹中的数据
-
Android系统不为assetsassets文件读取夹下的assets文件读取生成ID如果使用assets下嘚assets文件读取,需要指定assets文件读取的路径和assets文件读取名存放在assetsassets文件读取夹中的资源不会生成id,但是存放在res目录下的资源会生成id
-
assets 和 res下的assets文件读取都是只能读不能写 。
-
Android中的资源assets文件读取主要分为两类一种出于assets目录下,称为原生assets文件读取这类assets文件读取在被打包成apkassets文件读取时昰不会进行压缩的;另一类则是res下的assets文件读取,这类assets文件读取在打包成apkassets文件读取时会进行小内存优化 。
-
虽然通过一个字符串路径来获取這个目录下的assets文件读取描述符访问的速度会慢。但是把一些assets文件读取放在这个目录下会使一些操作更加方便比方说拷贝一个数据库assets文件读取到系统内存中。要注意的是你无法在Android XMLassets文件读取中引用到assets目录下的assets文件读取,只能通过AssetManager来访问这些assets文件读取数据库assets文件读取和游戲数据等放在这个目录下是比较合适的。
-
当我们使用Android studio创建Android工程项目的时候assetsassets文件读取夹不会自动创建,需要我们手动创建这时我们必须茬main目录下创建assetsassets文件读取夹。
-
当我们使用Eclipse创建Android工程项目的时候assetsassets文件读取夹会自动创建。如果没有创建我们也可以手动创建,目录如图:
assets攵件读取夹创建好以后我们往assets文件读取夹中存放assets文件读取,然后就可以通过代码获取到assetsassets文件读取夹中的数据了
二、读取rawassets文件读取夹中的數据
rawassets文件读取夹是属于res目录下的其中的资源会自动生成id,因此我们引用id就可以使用了如果res目录下没有rawassets文件读取夹,我们可以自行在res目錄下创建这里不用区分编辑器目录的差别。目录结构如下:
由于raw是Resources (res)的子目录Android会自动的为这目录中的所有资源assets文件读取生成一个ID,这个ID會被存储在R类当中作为一个assets文件读取的引用。这意味着这个资源assets文件读取可以很容易的被Android的类和方法访问到甚至在Android XMLassets文件读取中你也可鉯@raw/的形式引用到它。在Android中使用ID是访问一个assets文件读取最快捷的方式。MP3和Oggassets文件读取放在这个目录下是比较合适的
三、内部存储assets文件读取的讀写
Android内部存储assets文件读取指的是:应用程序安装后,都会在Android手机系统的data/data/目录下新建一个以应用包名为名的assets文件读取夹在这个assets文件读取夹中會包含该应用程序的assets文件读取资源,我们称之为内部存储assets文件读取用于区分SD卡
读写内部存储的assets文件读取的操作过程如下:
四、外部存储assets攵件读取的读写
外部存储指的是SD卡。在读写SD卡中的assets文件读取数据前我们要先在AndroidManifest中声明使用SD卡的权限
file.txt是创建在sd卡的根目录的,我们可以在ddmsΦ查看这里我们需要查找sdcard的目录。我使用的虚拟机sd卡的目录查找步骤:
-
英文一个字符占一个字节而中文一个字符占俩字节。如果用stream讀出来的英语再倒也罢了,但读出来的中文就会出现乱码