Android数据存储

Android中的数据存储

  1. Context类为我们提供了一个OpenFileOutput()可以用将数据存储到指定的文件中。第一个参数是文件名,第二个参数是模式:MODE_PRIVATE和MODE_APPEND
  2. Context还提供了OpenFileInput()进行读取bufferedReader.readLine()!=null时一直读

SharedPreference存储

该文件都是存放在包下

  • 获取该对象
    1.Context类中 getSharedPreference();第一个参数指定文件名称。第二个参数模式:MODE_PRIVAT(只有当前应用程序才可以进行读写)和MODE_MULTI_PROCESS(多线程)
  1. Activity类getPreference()。
  2. Preference类中的静态方法getDefaultSharedPreferences()
  • 得到对象之后,就可以开始向SharedPreference文件中存储数据
  1. 先获取Editor对象。edit();
  2. 添加数据putString()
  3. 提交数据commit(); (清除数据可以调用clear())

读取数据更简单,只需要SharedPreference.getXXX()就行。参数第一个是键第二个是默认值

SQLite数据库存储

创建数据库

  • 首先我们需要了解的SQliteOpenHelper帮助类。它是个抽象类所以我们必须自定义一个类继承他。实现两个方法和构造器。

  • 在调用gerReadableDatabase()或getWritableDatabase()创建数据库(如果数据库已存在则直接打开),并且返回一个可对数据库进行读写操作的对象。

  • gerReadableDatabase()使用这个方法时,若数据库不可写入(如磁盘空间已满)返回的对象以只读方式去打开数据库

  • getWritableDatabase()方法碰到上面情况则会抛出异常

  • SQliteOpenHelper中的两个构造方法,我们一般实现参数少的那个。

    • 第一个是Context,
    • 第二个参数是数据库名字,创建数据库时使用的就是这里指定的名称
    • 第三个参数允许我们在查询数据的时候返回一个自定义的Cursor,一般是null
    • 第四个参数是版本号用于升级

/data/data//databases/目录下。数据库创建成功了后我们可以在cmd中使用如下命令:

  1. adb shell
  2. cd /data/data//databases/
  3. ls我们可以查看到有两个一个是我们创建的,另一个是XXX.db-journal是为了让数据库能支持事务而产生的临时日志文件,大小为0kb.
  4. sqlite3 后面加数据库的名字即可(借助sqlite来打开数据库)
  5. .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()){ ....}

你可能感兴趣的:(Android数据存储)