安卓数据存储详解-孙霞霞著

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【sharePreferences】共享参数:

概念:SharedPreferences是Android系统提供的一个通用的数据持久化框架,

用于存储和读取key-value类型的原始基本数据类型对,目前支持String、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法

使用SharedPreferences来存储。

他通常以xml文件方式存储在data文件夹中,文件存储路径:

/data/data/{appPackageName}/shared_prefs/{filename}

SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,

上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家

积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。

注:SharePreferenced本身的对象不能对数据进行存储和修改,只能获取到数据,是通过Editor的实例化对象对数据进行存储和修改。

常用方法

1.Context.getSharedPreferences(String, int mode)

mode的属性值有:

Context.MODE_PRIVATE:指定该SharedPreferences的数据只能

被本应用程序读、写

Context.MODE_APPEND:新内容追加到原内容后

Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据

能被其他应用程序读,但是不支持写

Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据

能被其他应用程序读、写会覆盖原数据;

可以使用"+"连接这些权限

2.contains(String key)

3.Map getAll()

4.getString(String key, String defValue)

5.SharedPreferences.Editor edit()

putString(String key, String value)

putStringSet(String key, Set values)

putBoolean(String key, boolean value)

clear()

commit() 编辑完数据之后必须提交

SharePreferenced存储数据的方法

1.创建一个SharePreferenced的对象:SharedPreferences pref = getSharedPreferences("name_pref", MODE_PRIVATE);

2.创建一个Editor的对象 : editor = pref.edit();

3.然后调用Editor对象的putXxx方法,把指定的key值和他相对应的数据存储到SharePreferenced当中。

4.调用Editor的commit()方法,把存储的数据内容或者修改的内容提交。:mit();

登录的实例:(重重点)

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(yout.activity_main);

userEt = (EditText)findViewById(erEt);

passEt = (EditText)findViewById(R.id.passEt);

chkSave = (CheckBox)findViewById(R.id.chkSaveUser);

pref = getSharedPreferences("name_pref", MODE_PRIVATE);

editor = pref.edit();

String name = pref.getString("name", null);//获取数据

if (name == null) {

chkSave.setChecked(false);

}else{

userEt.setText(name);

chkSave.setChecked(true);

}

}

public void loginClick(View v){

String name = userEt.getText().toString();

String pass = passEt.getText().toString();

if ("admin".equals(name)&&"123456".equals(pass)) {

if (chkSave.isChecked()) {

editor.putString("name", name);

mit();

}else{

editor.remove("name");

mit();

}

Toast.makeText(MainActivity.this, "登录成功", 0).show();

}else{

Toast.makeText(MainActivity.this, "登录失败", 0).show();

【file存储】

内部存储

好处:当手机应用被卸载删除的时候,不会有过多的存于垃圾,都会被一起清理掉。

常用方法:

1.FileOutputStream Context.openFileOutput (String filename, int mode)

Context.MODE_APPEND

Context.MODE_PRIVATE

Context.MODE_WORLD_READABLE

Context.MODE_WORLD_WRITEABLE

2.FileInputStream Context.openFileInput (String filename)

3.String[] Context.fileList()

4.Context.deleteFile(String filename)

文件存储的步骤:

相关文档
最新文档