Android数据持久化技术

Android数据持久化

文件

  1. 将数据存储到文件
    Context类(Activity的间接父类)中提供了一个openFileOutput()方法,第一个参数是文件名,无需包含路径,因为所有的文件都默认存储到/data/data/包名/files/目录下。第二个是操作模式,MODE_PRIVATE(覆盖)或MODE_APPEND(追加)。
  1. FileOutputStream out = openFileOutput("data",Context.MODE_PRIVATE);
  2. BufferedWriter writer =newBufferedWriter(newOutputStreamWriter(out));
  3. writer.write("要写入的数据")
  1. 从文件读取数据
    Context类(Activity的间接父类)还提供一个openFileInput()方法,需要一个参数,要读取的文件名。
  1. FileInputStream in = openFileInput("data");//文件名
  2. BufferedReader reader =newBufferedReader(newInputStreamReader(in));

SharedPreferences

使用键值对来进行存储。比文件存储方便很多。

  1. 将数据存入SharedPreferences中
    首先,获得SharedPreferences对象,有三种方法;
  1. //方法1:
  2. SharedPreferences share = getSharedPreferences("data", MODE_PRIVATE);
  3. //方法2:文件名默认为类名
  4. SharedPreferences share = getPreferences(MODE_PRIVATE);
  5. //方法3:静态方法,参数为一个Context,默认包名作为文件名的前缀
  6. SharedPreferences share =PreferenceManager.getDefaultSharedPreferences(this);

第二步,调用SharedPreferences对象的edit()方法获取一个Editor对象。
第三,向Editor中添加数据
最后,调用commit()方法提交数据。

  1. SharedPreferences.Editor editor = getSharedPreferences("data", MODE_PRIVITE).edit();
  2. editor.putString("name","Tom");
  3. editor.putInt("age",28);
  4. editor.putBoolean("married",false);
  5. editor.commit();
  1. 从SharedPreferences中读取数据
    获取SharedPreferences对象之后get相应的类型即可。
  1. SharedPreferences pref = getSharedPreferences("data", MODE_PRIVATE);
  2. String name = pref.getString("name","");
  3. int age = pref.getInt("age",0);
  4. boolean married = pref.getBoolean("married",false);

SQLite数据库

Android专门提供了一个SQLiteOpenHelper帮助类。这个类是抽象类,提供两个抽象方法onCreate()和onUpgrade()。还提供了两个实例方法getReadableDatabase()和getWritableDatabase(),它们创建或打开一个数据库,区别是,当数据库不可写入时,前者会以只读方式打开,而后者会抛出异常。

  1. 创建数据库





posted @ 2016-10-31 13:22  qianzi  阅读(1090)  评论(0编辑  收藏  举报