zoukankan      html  css  js  c++  java
  • android数据的四种存储方式之一——SharedPreference

      除了SQLite数据库外,SharedPreferences也是一种轻型的数据存储方式,它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。实现SharedPreferences存储的步骤如下:

      一、根据Context获取SharedPreferences对象

      二、利用edit()方法获取Editor对象。

      三、通过Editor对象存储key-value键值对数据。

      四、通过commit()方法提交数据。

      具体实现代码如下:

    package leihu.sharedprefence;
    
    import java.util.HashSet;
    import java.util.Set;
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.SharedPreferences;
    import android.content.SharedPreferences.Editor;
    import android.util.Log;
    public class MainActivity extends Activity {
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		Set<String> s = new HashSet<String>();
    		s.add("ni");
    		s.add("hao");
    		s.add("ma");
    		Set<String> none = new HashSet<String>();
    		none.add("none");
    		
    		SharedPreferences sp = this.getSharedPreferences("SP", MODE_PRIVATE);
    		Editor editor = sp.edit();
    		editor.putString("STRING_KEY", "string");
    		editor.putInt("INT_KEY", 0);
    		editor.putBoolean("BOOLEAN_KEY", false);
    		editor.putFloat("FOLAT_KEY", 0.01F);
    		editor.putLong("LONG_KEY", 200);
    		editor.putStringSet("SET_KEY", s);
    		editor.commit();
    		
    		Log.d("SP", sp.getString("STRING_KEY", "none"));
    		Log.d("SP", sp.getStringSet("SET_KEY", none).toString());
    		Log.d("SP", (sp.getLong("LONG_KEY", 0))+"");
    		Log.d("SP", sp.getString("NOT_EXIST", "none"));
    	}
    
    
    }
    

    打印信息如下:

     这段代码执行过后,即在/data/data/包名/shared_prefs目录下生成了一个SP.xml文件,一个应用可以创建多个这样的xml文件。如图所示: 

     

    如果不能直接在上一个界面中将xml文件pull出来,可以在CMD中用如下命令取出xml文件到桌面:

    取出以后的xml文件如下所示:

      <?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
    - <map>
    - <set name="SET_KEY">
      <string>ma</string> 
      <string>hao</string> 
      <string>ni</string> 
      </set>
      <float name="FOLAT_KEY" value="0.01" /> 
      <boolean name="BOOLEAN_KEY" value="false" /> 
      <long name="LONG_KEY" value="200" /> 
      <int name="INT_KEY" value="0" /> 
      <string name="STRING_KEY">string</string> 
      </map>
    

     SharedPreferences对象与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其职能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。

  • 相关阅读:
    iOS 关于NSNotificationCenter
    IOS UITableView reload 刷新某一个cell 或 section
    IOS AFNetWorking 设置超时时间
    IOS AFNetWorking
    IOS 十六进制字符串转换成UIColor
    IOS 长姿势---双击Home键
    IOS 关于 NSUserDefault
    方正璞华培训讲师
    localStorage使用总结
    Promise的简单用法
  • 原文地址:https://www.cnblogs.com/leihupqrst/p/3197915.html
Copyright © 2011-2022 走看看