(012)数据存储总结

我们使用的每个程序都离不开数据 比如说:看新闻 上QQ 刷微博 在这些数据中有一种数据叫做瞬时数据 他会因为程序的意外关闭而导致数据的流失
那么有了问题了 伟大的人类就会想办法解决 于是相应产生了一种叫做数据持久化的技术 在安卓中有这样几种办法可以实现它:

    1, 共享参数存储

    2, File存储   内部存储 和  外部存储(sd卡存储)

    3, 数据库的存储

    4, ContentProvider 内容提供者

    5, 网络存储

下面我们来分别介绍一下:
一、共享参数的存储 SharedPreferences(基本设置, 登陆信息可以去其他大神那看一下登陆界面的设置记住密码功能 就是这个方法实现的)

1, 特征

    存放轻量级的数据

    本质是以xml的格式, 通过键值队的方式对数据进行读取

    应用程序卸载后, 文件也会被删除


2, 存放的数据类型

    boolean float int string long

3, 存放数据的路径

    data/data/应用程序包名/shared_prefs/***.xml

4, 存储数据

    1, 得到共享参数的对象
    SharedPreferences sp = getSharedPreferences(name,mode);

    2, 得到共享参数的编辑对象
    Editor editor = sp.edit();

    3, 向共享参数中写入数据
    editor.putString(key,value);

    4, 提交数据
    editor.commit();

5, 读取数据

    1, 得到共享参数对象
    SharedPreferences sp = getSharedPreferences(name,mode);

    2, 读取数据
    String msg = sp.getString(key,默认值);

6, Editor的常用方法:

    editor.putString(key,value); 设置数据

    editor.commit();  提交数据

    editor.clear();   清除所有数据

    editor.remove(key);  移除指定数据

二, File 存储

内部存储  internal storage

    1 特点:

        文件只能被当前应用程序, 其他应用程序不能访问

        当应用程序卸载后, 程序在内部存储中的文件也会被删除

    2, 路径

        data/data/应用程序包名/files/***.***

    3, 核心代码  FileOutputStream  FileInputStream

        3.1  存入数据

            //得到内部文件存储的输出流
            FileOutputStream fos = openFileOutput(name,mode);

            //写入内容
            fos.write(content.getBytes());

            //关闭流
            fos.close();

        3.2  读取数据

            //得到内部文件存储的输入流
            FileInputStream  fis = openFileInput(name);

            //读取文件
            byte[] buffer = new byte(fis.available());

            fis.read(buffer);

            //关闭流
            fis.close();


    4, 内部存储的方法

        String[] fileList()   得到内部存储中所有文件的名称

        deleteFile(String fileName)  删除指定的文件

        File  getFileDir()    得到数据文件的绝对路径


 外部存储   External Storage

1,特点

    1, 插入sd卡

    2, 分为2部分   sd卡的公共目录   sd卡的私有目录

    3, 公共目录下的文件可以被应用程序共享, 私有目录中的文件只能被当前应用成访问

    4, 当应用程序卸载后, 公共目录中的文件不会被清除, 私有目录中的文件会被清除

2,路径

    mut/sdcard  4.0之前存放的路径   公共目录

    storage/sdcard  4.0后存放的路径     公共目录

    storage/sdcard/Android/data/应用程序包名/...  私有目录

3,读写sd的权限

4, 获取扩展卡的根目录

5, 获取扩展卡的状态

6,常用目录

三,数据库

Oracle,  SQLServer,  MySql,  SQLite   关系型数据库

SQLite数据库

Android中集成好的轻量级的数据库

1, 特点

轻量级 只有一个动态数据库, 是以当个文件的方式进行存取    

零配置 无需安装

跨平台 支持多个操作系统

嵌入式 嵌入到手机


在应用程序内部, 任何位置都可以通过数据库的名称访问数据库, 其他应用无法通过数据库名称对其访问


data/data/应用程序包名/database/***.db

2, 数据存储的类型

NULL        空值

INTEGER     整型

VARCHAR     可变长度的字符数据

TEXT        文本字符

BOOLEAN     布尔

3, sql语句

1, 创建表

    create table if not exists 表名(字段名称  字段类型 primary key autoincrement,字段名称  字段类型,....)

    create table if not exists user(_id integer primary key autoincrement,name varchar,age integer)

2, 插入数据

    insert into 表名(字段S) values(值S)

    insert into user(name,age) values('张三',18)

3, 修改数据

    update 表名 set 字段名称=值 where 字段名称=条件值

    update user set age=25 where name = '张三'

4, 查询数据

    select (字段S) from 表名  where  字段名称=条件值

    select * from user 

    select * from user where _id=2

    select * from user where name like '%张%'


5, 删除数据

    delete from 表名 where 自动名称=条件值

安卓正是把这个功能极为强大的数据库嵌入到系统中来 才使得本地持久化有了一个质的飞跃。
剩下的两个方法我们会在下面的章节给大家介绍。
小编结语: 书山有路勤为径 学海无涯苦作舟 坚持就是胜利 只有把自己最不擅长的事情做好 才会得到最本质的成就感!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值