安卓学习笔记3_Android数据持久化

安卓学习笔记3_Android数据持久化

今天刚简单学习了安卓数据持久化, 现在梳理一下.

一:文件存储

安卓中的文件存储就是使用了Context类中提供的openFileOutput()openFileInput()分别对应着文件的持久化以及反持久化.
其中,调用openFileOutPut()方法返回一个FileOutputStream对象,调用openFileInput()会返回一个FileInputStream对象. 这两个对象就是java IO的字节流输入, 输出对象.
我们通过安卓Contex类提供的这两种方法拿到这两对象之后,就和JAVA一样了,该干嘛干嘛就行.

二:SharedPreference存储

不同于文件存储的方式,SharedPreference是使用key-value的方式存储数据的.

1:如何获取SharedPreference对象

要想使用SharedPreference来存储数据,首先要获取SharedPreference对象, <第一行代码中>介绍了有三种方式获取到这个对象. 但是我今天实验的时候,发现第三种方法貌似已经不推荐使用了, 第二种获取SharedPreference对象的方式, 实际上通过阅读源码发现内部也是调用的第一种获取方式.

1:Context类中的getSharedPreferences()方法
我也就不介绍了,凡是继承了Context类的子类,都可以直接调用这个方法.
该方法有两个参数,第一个参数用于指定SharedPreference文件的名称. 第二个参数用于指定操作模式.(但是暂时没啥用,只有一种模式,直接alt+/提示就行)

2:Activity类中的getPreferences()方法.
在Activity中使用, 参数只有一个,就是指定操作模式.
之所以省略了指定SharedPreference文件名称的参数, 是因为它默认用当前Activity类名当做文件名称.

3:PreferenceManager类中的getDefaultSharedPreferences()方法.
这是个静态方法,接收一个Context参数.

2:如何使用SharedPreference对象进行保存

就为了复习一下,直接写代码:

//方法2:使用Context类中的getSharedPreference()方法,
//实际上,通过阅读源码,可以知道方法1中最后也是调用的该方法
SharedPreferences  sharedPreferences = getSharedPreferences("data", MODE_PRIVATE);          
//调用SharedPreference对象的edit()方法,获的SharedPreference.Edit对象
SharedPreferences.Editor edit = sharedPreferences.edit();
//存数据
edit.putString("name", "zhangsan");
edit.putInt("age", 10);
edit.apply();
3:如何使用SharedPreference对象获取数据
SharedPreferences  sharedPreferences = getSharedPreferences("data", MODE_PRIVATE);          
//取数据
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", -1);

三:SQLite数据库存储

1:创建数据库

我们要自己写一个类,继承SQLiteOpenHelper抽象类. 并实现它的 onCreate()onUpgrade()方法. 前者是初始化方法, 后者是用来升级数据库的.
还要实现构造方法,构造方法就重写4个参数的.
然后我们实例化刚刚继承了SQLiteOpenHelper类的自定义类, 通过SQLiteOpenHelper自己的实例方法
getReadableDatabase()或者getWritableDatabse()方法获得数据库对象(有就直接返回, 没有就创建). 这两个方法看名字就知道差别了.

2:数据库的使用

就使用原生sql,超级方便. 懒得学了.
使用刚刚的继承了SQLiteOpenHelper类的自定义类, 通过getReadableDatabase或者getWritableDatabse()方法获取数据库对象之后, 就可以开始CRUD了.
增删改的时候,使用数据库对象db.excuteSQL(类sql语言); 查询的时候使用数据库对象db.rawQuery("查询的sql", null)(生查)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值