Android 入门四(数据存储)

SharedPreferences

  • SharedPreferences对象本身只能获取数据,不支持存储和修改,存储修改通过Editor对象实现
  • 使用方法
    • 获取SharedPreferences对象
    • 获取SharedPreferences.Editor对象
    • 通过Editor接口的putXXX方法保存key-value对(其中XXX表示不同的数据类型)
    • 通过Editor接口的commit方法提交key-value对

SQLite

  • 特点
    • 轻量级 一个动态库,单文件
    • 独立性 无依赖,无需安装
    • 隔离性 全部在一个文件夹中
    • 跨平台 支持多系统
    • 多语言接口 支持多种编程语言
    • 安全性 事务
  • 数据类型
    • NULL, Integer, real, text, blob(二进制对象)
    • 弱引用,自动转换
  • SQLiteDatabase
    • 提供管理sqlite数据库的类(curd)

    • 这里写图片描述
    • cursor
      这里写图片描述
  • Sqlite实例
//创建数据库并打开
        SQLiteDatabase db = openOrCreateDatabase("user.db", MODE_PRIVATE, null);
        //插入
        db.execSQL("create table if not exists usertb(" +
                "_id integer primary key autoincrement," +
                "name text not null," +
                "age integer not null," +
                "sex text not null)");
        db.execSQL("insert into usertb(name, age, sex) values('张三','女',18)");
        db.execSQL("insert into usertb(name, age, sex) values('李四','女',19)");
        db.execSQL("insert into usertb(name, age, sex) values('王五','女',20)");
        //查询
        Cursor c = db.rawQuery("select * from usertb", null);
        if(c != null) {
            while(c.moveToNext()) {
                Log.i("info", "_id " + c.getInt(c.getColumnIndex("_id")));
                Log.i("info", "name " + c.getString(c.getColumnIndex("name")));
                Log.i("info", "age " + c.getInt(c.getColumnIndex("age")));
                Log.i("info", "sex " + c.getString(c.getColumnIndex("sex")));
            }
            //释放游标
            c.close();
        }
        //关闭数据库
        db.close();
  • SQLiteOpenHelper
    • 是sqlitedatebase的帮助类,用于数据库的管理和版本更新
    • 常用方法
      这里写图片描述 
      其中oncreate方法在首次创建库的时候调用,一般建库和建表的操作放在这里

File

  • 实例
//创建文件
File file = new File("/mnt/sdcard/test");
if(!file.exists()) {
    try{
        file.createNewFile();
    } 
}
//删除
file.delete();

//获取当前应用程序默认目录
File file = this.getFilesDir();
Log.i("info", file.toString());
//当前应用程序默认缓存文件存放目录
File file = this.getCacheDir();
//本应用下/data/data/<包名>/app_name
File file = this.getDir("name", MODE_PRIVATE);
//如果手机是api8以上,可以使用外置存储位置,sdcard
this.getExternalCacheDir();

//使用流写入文件

这里写图片描述 

  • 以上三个数据存储方式都不能与本应用外进行数据共享,ContentProvider可用于不同应用间数据共享
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值