Android数据存储

作者: 清枫_小天 | 来源:发表于2016-07-05 23:39 被阅读273次

    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/<package name>/databases/目录下。数据库创建成功了后我们可以在cmd中使用如下命令:

    1. adb shell
    2. cd /data/data/<package name>/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数据存储

        本文链接:https://www.haomeiwen.com/subject/zcqkjttx.html