数据存储简介

数据存储:文件存储、数据库存储

  1. 使用SharedPreference存储数据:提供了一套完整的框架用来存储基本类型数据的键值对(key=value mangoDB),例如Long、int、float、String等

  2. 文件存储数据

    (1)Internal Storage(内部存储):手机的内部存储设备是以文件的形式保存数据的,因此只能在本程序使用,外部的应用程序无法访问该文件,同时文件数据也是临时性的,当卸载本程序时,该文件也会自动被删除。

    (2)External Storage(外部存储):手机的外接存储设备也是以文件的形式存储数据,可以存储数据量较大的公共数据。外接的存储设备可以是移动式的(比如SD卡),应该注意的是,对于保存在外接设备的数据是不安全的,因为该设备中的数据对外部公开,用户可以进行读写操作,甚至删除数据。

  3. SQLite数据库存储数据:SQLite是标准的关系型数据库,用户可以使用标准的SQL语句进行数据的增删改查,该数据库具有小巧、独立性高、隔离性好、安全性高、跨平台和多语言接口等优点,它被内置在Android系统中,用于存储一些较复杂类型的数据,且系统中比较大的数据一般也都是用SQLite数据库存储(这也是Google工程师为什么在Android中内置该数据库的原因)。

文件存储

(1)Android手机存储分类

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/51547707-5c25-4884-8d71-11d0979f8efa/Untitled.png

  1. 内部存储

    https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b93e38ae-aa14-4419-af98-58ebdc8a4701/Untitled.png

  2. 外部存储:共有目录(需要申请权限)、私有目录(不需要访问权限)

(2)Android中的分块存储

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/eaeaa4eb-a0a3-464e-b132-e4d2142dad55/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/3e001453-3e4a-4fd6-b4d0-de5a463830ef/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/b5953184-1dfb-48a3-83bc-8a769ae87658/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5fd56177-f19a-42cb-832c-5f534a7b0bb7/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7a5731fa-ee17-4de7-a5c0-5954e0f25cbd/Untitled.png

I/O操作

读写文件步骤:
写文件:
 1. 获得输出流 : FileOutputStream fo = openFileOutput(name,Context.MODE_PRIVATE);
 2. 写内容 :  fo.write(content.getBytes());
3. 关闭文件

读文件:
  1. 获得输入流 :  FileInputStream fi = openFileInput(name);
  2. 创建字节数组,准备接受内容  byte[]  by = new byte[100];
  3. 读数据  fi.read(by);
  4. 关闭文件  fi.close();
  5. 把字节数组转化为 字符串 : String content = new String(by);

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/8db2a0a4-f45d-4f2e-8ead-a458a96e5a45/Untitled.png

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f5c70145-3096-49e8-89e4-b3970580d81e/Untitled.png

(3)Android权限动态申请