安卓文件操作api与路径对应关系整理

一、简述

  • apk中有两种资源文件,raw下的和assert下的,这些数据只能读取,不能写入,两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。需要注意的是两种资源文件中单个文件大小不能超过1M (Android2.3之前,目前貌似没有这个限制了)。res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类,res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

  • SD卡中的文件使用FileInputStream和FileOutputStream进行文件的操作。

  • 存放在数据区(/data/data/..)的文件只能使用openFileOutput和openFileInput进行操作。注意这里不能使用FileInputStream和FileOutputStream进行文件的操作。

在安卓开发中,经常会用到一些需要操作文件的需求,自己一直对api和文件路径相关的对应关系模糊不清楚,今天有时间来整理记录下,免得以后忘记了。

ps:由于手里没有可以装SD卡的机器,所以以下测试结果均是在无外置sd卡的手机上的测试结果

二、开始测试

首先看以下代码

ps:以下测试机型均为Vivo X9(android 7.1.2 api 25)和MeiZu M3(android 5.1 api 22)

getFil

おすすめ

転載: blog.csdn.net/you__are_my_sunshine/article/details/82840781