导航

数据存储方式

Posted on 2020-10-11 16:55  爱抓冒的克里斯_韦伯  阅读(190)  评论(0编辑  收藏  举报
  • 文件存储(openFileInput()和openFileOutput()读取设备上的文件)
    • 是Android中最基本的一种数据存储方式,与Java文件存储类似,通过I/O流的形式把数据直接存储到文件中。
    • 内部存储
      • 是指将应用程序中的数据以文件的形式存储到应用中(文件默认位于data/data/<packagement>/目录下)
      • 存储的文件被其所在应用程序私有化
      • 内部存储使用Context提供的openFileOut()方法 和 openFileInput()方法
        •   
          FileoutoutStream fos = openFileOutput(String name, int mode);
          FileInputStream fis = openFileInput(String name);
          

            参数 name 表示文件名; mode 表示文件的操作模式。

        • mode取值
          •   MODE_PRIVATE:该文件只能被当前程序读写。
          •        MODE_APPEND:该文件的内容可以追加。
          •        MODE_WORLD_READABLE:该文件的内容可以被其他程序读。
          •        MODE_WORLD_WRITEABLE:该文件的内容可以被其他程序写。
    • 外部存储
      • 是指将数据以文件的形式存储到一些外部设备上(文件通常位于mnt/sdcard目录下)
      • 在使用外部设备之前必须使用 Environment.getExternalStorageState()方法确认外部设备是否可用。
  • SharedPreference(以XML格式将数据存储到设备)
    • 是Android平台上一个轻量级的存储类,适用于程序中有一些少量数据需要持久化的存储(用户名、密码、自定义的一些参数等)
    • 将数据存入SharedPreferences中
      1 SharedPreferences sp = getSharedPreferences("data",MODE_PRIVATE);
      2 SharedPreferences.Editor editor = sp.edit();  //获取编辑器
      3 editor.putString("name","传智播客");             //存入String类型数据
      4 editor.putInt("age",8);                       //存入int类型数据
      5 editor.commit();                              //提交修改

       

    • 读取SharedPreference文件中的数据
      SharedPreferences sp = getSharedPreferences("data",MODE_PRIVATE);
      String data = sp.getString("name","");

       

    • 删除SharedPreferences文件中的数据
      editor.remove("name");
      editor.clear();

       

  • SQLite数据库(运算速度快,占用资源少,支持基本SQL语法)
    • 可以存储应用程序中的大量数据,并对数据进行管理和维护。
    • SQLite数据库的创建
      • 创建一个类继承SQLiteOpenHelper类
      • 在该类中重写onCreate()方法和onUpgrade()方法
        public class MyHelper extends SQLiteOpenHelper{
          public MyHelper(Context context){
            super(context,"itcast.db",null,2);      
          }  
          public void onCreate(SQLiteDatabase db){
            db.execSQL("CREATE TABLE information(_id INTEGER PRIMARY 
                 KEY AUTOINCEREMENT,name VARCHAR(20),price INTEGER)");
        
          }
           public void onUpgrade(SQLiteDatabase db, int oldVersion , int new Version){
        } }

         

    • SQLite数据库的基本操作
      • 新增数据--调用SQLiteDataBase对象的insert()方法。
      • 删除数据--调用SQLiteDataBase对象的delete()方法。
      • 修改数据--调用SQLiteDataBase对象的update()方法。
      • 查询数据--调用SQLiteDataBase对象的query()方法。  
    • SQLite数据库中的事务
      • 数据库事务是一个对数据库执行工作单元,是针对数据库的一组操作,可以由一条或者多条SQL语句组成。
      • 事务是以逻辑顺序完成的工作单位或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成。
      • SQLite是遵守ACID的关系型数据库管理系统,ACID是指数据库事务正确执行的四个基本要素。  
        • 原子性(Atomicity)
        • 一致性(Consistency)
        • 隔离性(Isolation)
        • 持久性(Durability)
  • ContentProvider(应用程序之间的数据交换,可以将自己的数据共享给其他应用程序使用)
  • 网络存储(通过网络提供的存储空间来存储/获取信息)