Android笔记_数据存储
2015-08-14 20:03
369 查看
数据存储的三种方式
文件中:
默认存储在data/data/[包名]/files文件夹下
写到文件中:output,write
Context类中提供了一个openFileOutput()的方法
返回的是一个FileOutputStream的对象。然后通过这个对象
可以进行相应的操作
读到手机中:input, read
Context类中提供了openFileInput()的方法,
返回FileInputStream的对象。
FileOutputStream out = openFileOutput(“data”,Context.MODE_PRIVATE/APPEND);
BufferedWriter writer = newBufferedWriter(new OutputStreamWriter(out));
SharedPreferences中
SharedPreferences文件都是存放在/data/data/<packagename>/shared_prefs/目录下
1、 获取SharedPreferences对象
a) Context类中的getSharedPreferences对象
接收两个参数,第一个是文件的名称,第二个是操作模式
操作模式有两种:private表示只有当前程序可以进行读写
Multi_process 表示多个进程对同一个进行读写
b) Activity类中的getPreferences()方法
与Context类中的方法很相似,不过它只接收一个操作参数,因为这个方法会将当前活动的类名作为SharedPreferences的文件名
c) preferenceManager类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件
2、 调用SharedPreferences对象的edit()方法,获取SharedPreferences.Editor对象
3、 向SharedPreferences.Editor对象中添加数据
1. putBoolean 添加布尔值
2. putString() 添加字符串。。。
4、 调用commit()方法将添加的数据进行提交。
SharedPreferences.Editoredit = getSharedPreferences(“”,mode).edit();
edit.put..
edit.commit();
取数据:
获得SharedPreferences对象
使用get方法获得,有两个参数,第一个为键,第二个为默认值
SharedPreferencespref = getSharedPreferences(“”,mode);
pref.getXXX(“”,default);
SQLite数据库存储
使用的工具类:SQLiteOpenHelper类,这是一个抽象类,需要创建一个自己的帮助 类来继承它实现操作 。
SQLiteOpenHelper有两个抽象方法,onCreate()和onUpgrade()
两个实例方法:getReadableDatabase()和getWritableDatabase()
打开现有的数据库,如果没有则创建一个新的数据库。返回一个可以操作的数据库对象。(数据库不可写入(如:磁盘已满)getWritableDatabase()会抛出异常)
SQLiteOpenHelper中有两个构造方法可供重写,一般使用参数少一点的那个。
有四个参数:第一个是Context,第二个是数据库名,第三个参数允许我们查询数据的 返回一个自定义的Cursor,一般都是传入一个null.第四个参数表示当前数据库的版本号。
构造出实例之后,就可以调用两个实例方法来操作了。
SQLite数据库数据类型:
Integer表示整型, real表示浮点型, text 表示文本, blob表示二进制类型
Primarykey 是主键, autoincrement表示自增长
第一次创建数据库时调用onCreate()方法,传入新的版本号时,会自动调用onGrade()方法
操作的数据库的第一种方法:
获得db对象,db.execSql(Stringsql) 使用sql语句来操作数据库
第二种方法:
使用ContentValuesvalues = new ContentValues();
Values.put(Stringkey, String value);
数据存到values之后,使用数据库对象的insert方法插入:db.insert(“Book”,null, values);
更新数据:
将要更改的数据存到ContentValues对象当中,然后调用db.update的方法
有四个参数,db.update(“Book”,values, “name=?”, new String[]{“string“};
表 修改的值 条件 前面问号的值
删除数据:db.delete(“book”,条件, new String[]{“”};
使用事务:
获得数据库的对象,
开启事务:db.beginTransaction();
Try{
相关的操作
如果上面操作完成,则设置事务状态为成功
Db.setTransactionSuccessful();
}catch(Exception e){
e.printStackTrace();
}finally{
db.endTransaction(); //结束事务
}
文件中:
默认存储在data/data/[包名]/files文件夹下
写到文件中:output,write
Context类中提供了一个openFileOutput()的方法
返回的是一个FileOutputStream的对象。然后通过这个对象
可以进行相应的操作
读到手机中:input, read
Context类中提供了openFileInput()的方法,
返回FileInputStream的对象。
FileOutputStream out = openFileOutput(“data”,Context.MODE_PRIVATE/APPEND);
BufferedWriter writer = newBufferedWriter(new OutputStreamWriter(out));
SharedPreferences中
SharedPreferences文件都是存放在/data/data/<packagename>/shared_prefs/目录下
1、 获取SharedPreferences对象
a) Context类中的getSharedPreferences对象
接收两个参数,第一个是文件的名称,第二个是操作模式
操作模式有两种:private表示只有当前程序可以进行读写
Multi_process 表示多个进程对同一个进行读写
b) Activity类中的getPreferences()方法
与Context类中的方法很相似,不过它只接收一个操作参数,因为这个方法会将当前活动的类名作为SharedPreferences的文件名
c) preferenceManager类中的getDefaultSharedPreferences()方法
这是一个静态方法,它接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件
2、 调用SharedPreferences对象的edit()方法,获取SharedPreferences.Editor对象
3、 向SharedPreferences.Editor对象中添加数据
1. putBoolean 添加布尔值
2. putString() 添加字符串。。。
4、 调用commit()方法将添加的数据进行提交。
SharedPreferences.Editoredit = getSharedPreferences(“”,mode).edit();
edit.put..
edit.commit();
取数据:
获得SharedPreferences对象
使用get方法获得,有两个参数,第一个为键,第二个为默认值
SharedPreferencespref = getSharedPreferences(“”,mode);
pref.getXXX(“”,default);
SQLite数据库存储
使用的工具类:SQLiteOpenHelper类,这是一个抽象类,需要创建一个自己的帮助 类来继承它实现操作 。
SQLiteOpenHelper有两个抽象方法,onCreate()和onUpgrade()
两个实例方法:getReadableDatabase()和getWritableDatabase()
打开现有的数据库,如果没有则创建一个新的数据库。返回一个可以操作的数据库对象。(数据库不可写入(如:磁盘已满)getWritableDatabase()会抛出异常)
SQLiteOpenHelper中有两个构造方法可供重写,一般使用参数少一点的那个。
有四个参数:第一个是Context,第二个是数据库名,第三个参数允许我们查询数据的 返回一个自定义的Cursor,一般都是传入一个null.第四个参数表示当前数据库的版本号。
构造出实例之后,就可以调用两个实例方法来操作了。
SQLite数据库数据类型:
Integer表示整型, real表示浮点型, text 表示文本, blob表示二进制类型
Primarykey 是主键, autoincrement表示自增长
第一次创建数据库时调用onCreate()方法,传入新的版本号时,会自动调用onGrade()方法
操作的数据库的第一种方法:
获得db对象,db.execSql(Stringsql) 使用sql语句来操作数据库
第二种方法:
使用ContentValuesvalues = new ContentValues();
Values.put(Stringkey, String value);
数据存到values之后,使用数据库对象的insert方法插入:db.insert(“Book”,null, values);
更新数据:
将要更改的数据存到ContentValues对象当中,然后调用db.update的方法
有四个参数,db.update(“Book”,values, “name=?”, new String[]{“string“};
表 修改的值 条件 前面问号的值
删除数据:db.delete(“book”,条件, new String[]{“”};
使用事务:
获得数据库的对象,
开启事务:db.beginTransaction();
Try{
相关的操作
如果上面操作完成,则设置事务状态为成功
Db.setTransactionSuccessful();
}catch(Exception e){
e.printStackTrace();
}finally{
db.endTransaction(); //结束事务
}
相关文章推荐
- android版本获取
- 【攻克Android (34)】Butter Knife 黄油刀
- android 中的Uri
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- android 物理按键
- android measure
- android 电容屏(三):驱动调试之驱动程序分析篇
- android 电容屏(二):驱动调试之基本概念篇
- 如何在Android智能手机上捕获数据包?
- android 电容屏(一):电容屏基本原理篇
- Android 自己的自动化测试(5)<robotium>
- Android自定义控件之乱涂
- Android常用的一些make命令
- Gradle 发布公共模块到maven库(android版)
- Android WiFi驱动测试 wireless-tools + wpa_supplicant
- 学习笔记-----Android的View绘制过程
- Android蓝牙聊天程序的扩展开发(基于Google Sample,类QQ设计)
- android布局margin和padding差异!
- 使用 android:paddingLeft报错解决办法
- [android]onTouch事件分发