安卓的基本存储方式
①使用Sharepreferences存储数据
②文件存储数据
③SQLite数据库存储数据
④使用contentProvide存储数据
⑤网络存储数据
一、使用sharepreferences存储数据
应用场景:数据量小。
特点原理:保存在xml文件的key-value键值对。
存放位置:SharedPreferences数据总是存储在/data/data/<package name>/shared_prefs目录下
使用存:
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
SharedPreferences.Editor ed = sp.edit();
ed.putString("user", user);
ed.putString("pwd", pwd);
ed.commit();
使用取:
SharedPreferences sp = getSharedPreferences("info", MODE_PRIVATE);
mUser.setText(sp.getString("user", ""));
mPWD.setText(sp.getString("pwd", ""));
模式:
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写
Editor有如下主要重要方法:
SharedPreferences.Editor clear():清空SharedPreferences里所有数据
SharedPreferences.Editor putXxx(String key , xxx value): 向SharedPreferences存入指定key对应的数据,其中xxx 可以是boolean,float,int等各种基本类型据
SharedPreferences.Editor remove(): 删除SharedPreferences中指定key对应的数据项
SharedPreferences commit(): 当Editor编辑完成后,使用该方法提交修改
补充:(此段摘抄)读写其他应用的SharedPreferences: 步骤如下
1、在创建SharedPreferences时,指定MODE_WORLD_READABLE模式,表明该SharedPreferences数据可以被其他程序读取
2、创建其他应用程序对应的Context:
Context pvCount = createPackageContext("com.tony.app", Context.CONTEXT_IGNORE_SECURITY);这里的com.tony.app就是其他程序的包名
3、使用其他程序的Context获取对应的SharedPreferences
SharedPreferences read = pvCount.getSharedPreferences("lock", Context.MODE_WORLD_READABLE);
4、如果是写入数据,使用Editor接口即可,所有其他操作均和前面一致。
SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
二、文件存储数据
特点原理:Context提供了两个方法来打开数据文件里的文件IO流 FileInputStream openFileInput(String name); FileOutputStream(String name , int mode),这两个方法第一个参数 用于指定文件名,第二个参数指定打开文件的模式.
推荐使用:getFileDir(),会动态的找到data/data/包名/files文件下