Android的数据存储形式

来源:互联网 发布:黑客模拟软件 编辑:程序博客网 时间:2024/05/16 13:41

数据持久化技术

数据持久化就是将那些在内存中的瞬时数据保存到存储设备中,保证手机或电脑在关机状态下,这些数据仍然不会丢失。Android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即文件存储、SharedPreference 存储以及数据库存储。

  1. 文件存储

    是Android最基本的数据存储方式,也就是常说的I/O存储,它不对存储的内容进行任何格式化处理,所有的数据都是原封不动的保存到文件中,比较适合存储一些简单的文本数据和二进制数据,缺点是更新数据比较困难。

    • 写:openFileOutput(“example”, Context.MODE_PRIVATE);

      example是文件名Context.MODE_PRIVATE是操作模式,表示当指定定同样文件名的时候,所写入的内容将会覆盖原文件中的内容Context.MODE_APPEND,表示如果该文件已存在就往文件里面追加内容,不存在就创建新文件。
    • 读:openFileInput(“example”);

      example是文件名
  2. SharedPreference存储

    获取SharedPreference存储的3种方式

    1.Context 类中的 getSharedPreferences()方法SharedPreferences sp = getSharedPreferences("example", Context.MODE_PRIVATE);"example"是文件名Context.MODE_PRIVATE是操作模式2.Activity 类中的 getPreferences()方法SharedPreferences preferences = getPreferences(Context.MODE_PRIVATE);3.PreferenceManager 类中的 getDefaultSharedPreferences()方法SharedPreferences dsp = PreferenceManager.getDefaultSharedPreferences(this);这是一个静态方法,它接收一个 Context 参数,并自动使用当前应用程序的包名作为前缀来命名 SharedPreferences 文件。

    对数据进行操作

      1. 调用 SharedPreferences 对象的 edit()方法来获取一个SharedPreferences.Editor 对象。
      2. 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
        putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
      3. 调用 commit()方法将添加的数据提交,从而完成数据存储操作。
      1. 获取 SharedPreferences 对象
      2. 调用SharedPreferences 对象的getXxx(“key”,defaultValue)方法获取相应类型的数据
  3. SQLite数据库存储

    1. 创建数据库

      1. 新建一个类ExampleSQLite继承自SQLiteOpenHelper
      2. 重写构造方法
      3. 重写onCreate(),onUpgrade()
      4. 在onCreate()执行创建数据库的语句
      5. 获取SQLiteDatabase对象,从而创建完成
    2. 升级数据库

      此次数据库的版本高于上一次,就会执行onUpgrade(),进行更新数据库

    3. 添加数据

      1. 获取SQLiteDatabase对象
      2. 使用ContentValues来对要添加的数据进行组装
      3. 调用insert()方法进行添加数据
    4. 更新数据

      1. 获取SQLiteDatabase对象
      2. 使用ContentValues来对要更新的数据进行组装
      3. 调用update()方法进行更新数据
    5. 删除数据

      1. 获取SQLiteDatabase对象
      2. 调用delete()方法,对指定的数据进行删除
    6. 查询数据

      1. 获取SQLiteDatabase对象
      2. 调用query()方法对指定数据进行查询,获得cursor对象
      3. 遍历cursor对象,可将数据查询出来
    7. 使用事务

      事务的特性是保证某一系列操作要么全部完成,要么一个都不会完成。

      1. 获取SQLiteDatabase对象,用该对象的beginTransaction()开启事务
      2. 在对数据库惊醒一系列的操作后边调用setTransactionSuccessful(),表示事务已经执行成功了。
      3. 在finally代码块中调用endTransaction()方法结束事务
0 0