- 一、内部存储与外部存储
- 1. 内部存储
- 2.外部存储
- 二、SharedPreferences:
- 三、SQLite数据库
通过openFileOutput和openFileInput创建对应的输出、输入流对象,其中openFileOutput中两个参数分别为文件名和文件的操作模式,其中model的取值有
注意︰Android系统有一套自己的安全模型,默认情况下任何应用创建的文件都是私有的,其他程序无法访问。
也就是说当不给权限时,外部是无法对文件进行操作。
内部存储写入文件代码展示:
内部存储读取外部文件:
外部存储方式代码:
对外部文件进行操作的时候都要先获取外部设备的状态。
读取外部文件的数据:
注意:
- Android系统规定,程序访问系统的一些关键信息时,必须申请权限,否则程序运行时会因为没有访问系统信息的权限而直接崩溃。
申请SD卡权限分为静态申请和动态权限:
静态申请:
动态权限申请:
其中,正常权限用静态申请即可,但是危险权限要动态进行申请。
第一个参数为上下文,第二个参数为需要申请的权限,第三个参数为请求码。
用户界面会弹出
窗口,当用户选择是否同意后,程序会执行回调方法
第一个参数为请求码,第二个参数为请求权限,第三个参数为用户授予权限的结果,当用户授予权限时,该数组中对应的值为PackageManager.PERMISSION_GRANTED
二、SharedPreferences:
-
数据库的创建
super的四个参数分别为上下文,数据库名,游标工厂(通常设置为null),数据库版本。super方法执行后就会创建数据库。onCreate为设置数据库的结构,最先面的方法当版本号不发生变化时不使用。 -
数据库的剧本操作
添加数据
put方法第一个参数为列名,第二个为对应的值。
insert方法中的三个参数分别为数据库中表的名称,如果发现要插入的行为空行时设置为空,第三个参数为ContentValues对象。
删除数据:
修改数据
update第三个参数为要查找的条件,第四个为要修改的值
查询数据:
query的七个参数分别为数据库名,列名,查询的条件,查询的内容,后面三个一般为null



