您的位置:首页 > 移动开发 > Android开发

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(); //结束事务

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: