Android中的数据存储
- Context类为我们提供了一个OpenFileOutput()可以用将数据存储到指定的文件中。第一个参数是文件名,第二个参数是模式:MODE_PRIVATE和MODE_APPEND
- Context还提供了OpenFileInput()进行读取bufferedReader.readLine()!=null时一直读
SharedPreference存储
该文件都是存放在包下
- 获取该对象
1.Context类中 getSharedPreference();第一个参数指定文件名称。第二个参数模式:MODE_PRIVAT(只有当前应用程序才可以进行读写)和MODE_MULTI_PROCESS(多线程)
- Activity类getPreference()。
- Preference类中的静态方法getDefaultSharedPreferences()
- 得到对象之后,就可以开始向SharedPreference文件中存储数据
- 先获取Editor对象。edit();
- 添加数据putString()
- 提交数据commit(); (清除数据可以调用clear())
读取数据更简单,只需要SharedPreference.getXXX()就行。参数第一个是键第二个是默认值
SQLite数据库存储
创建数据库
-
首先我们需要了解的SQliteOpenHelper帮助类。它是个抽象类所以我们必须自定义一个类继承他。实现两个方法和构造器。
-
在调用gerReadableDatabase()或getWritableDatabase()创建数据库(如果数据库已存在则直接打开),并且返回一个可对数据库进行读写操作的对象。
-
gerReadableDatabase()使用这个方法时,若数据库不可写入(如磁盘空间已满)返回的对象以只读方式去打开数据库
-
getWritableDatabase()方法碰到上面情况则会抛出异常
-
SQliteOpenHelper中的两个构造方法,我们一般实现参数少的那个。
- 第一个是Context,
- 第二个参数是数据库名字,创建数据库时使用的就是这里指定的名称
- 第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般是null
- 第四个参数是版本号用于升级
/data/data/<package name>/databases/目录下。数据库创建成功了后我们可以在cmd中使用如下命令:
- adb shell
- cd /data/data/<package name>/databases/
- ls我们可以查看到有两个一个是我们创建的,另一个是XXX.db-journal是为了让数据库能支持事务而产生的临时日志文件,大小为0kb.
- sqlite3 后面加数据库的名字即可(借助sqlite来打开数据库)
- .table(查看表) .schema(查看建表语句)
添加数据
-
我们先获取SQLiteDatabase对象
-
然后使用ContentValues来对要添加的数据进行组装。
-
接下来调用insert()方法将数据添加到表中。插入多条必须用完ContentValues对象之后clear();
db.insert("Book",null,contentvalues);
-
更新数据调用的是update();
db.update("Book",values,"name=?",new String []{"The Davinci Code"});
-
删除数据
db.delete("Book","pages>?",new String[]{"500"});
-
查询数据
Cursor cursor=db.query("Book",null,null,null,null,null,null); 遍历cursor while(cusor.moveToNext()){ ....}
网友评论