zoukankan      html  css  js  c++  java
  • 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. 创建数据库





  • 相关阅读:
    编写isNull isArray isFunction的方法
    JS中Null与Undefined的区别
    css中关于transform、transition、animate的区别
    js数组去重的方法
    深入理解 Javascript 面向对象编程(转)
    js 创建类和继承的几种方法
    一道面试题,想明白之后好像锤自己几下~~
    关于offsetTop offsetHeight clientHeight scrollHeight scrollTop的区别研究
    alt和title的用法区别
    C++的黑科技(深入探索C++对象模型)
  • 原文地址:https://www.cnblogs.com/qianzi067/p/6015545.html
Copyright © 2011-2022 走看看