【数据存储】sharedPreferences-轻量级存储

  • Post author:
  • Post category:其他


SharedPreferences介绍 (重点) 用来做数据存储

sharedPreferences是通过xml文件来做数据存储的。

一般用来存放一些标记性的数据,一些设置信息。

<1>

使用sharedPreferences存储数据

1.通过Context对象创建一个SharedPreference对象
    //name:sharedpreference文件的名称    mode:文件的操作模式
    SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);

2.通过sharedPreferences对象获取一个Editor对象
    Editor editor = sharedPreferences.edit();

3.往Editor中添加数据
    editor.putString("username", username);
    editor.putString("password", password);

4.提交Editor对象
    editor.commit();

<2>

使用sharedPreferences读取数据

1.通过Context对象创建一个SharedPreference对象
    SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo.txt", Context.MODE_PRIVATE);

2.通过sharedPreference获取存放的数据
    //key:存放数据时的key   defValue: 默认值,根据业务需求来写
    String username = sharedPreferences.getString("username", "");
    String password = sharedPreferences.getString("password", "");

    通过PreferenceManager可以获取一个默认的sharepreferences对象      
    SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);

各种存储的优劣:

1. 简单数据和配置信息,SharedPreference是首选;

2. 如果SharedPreferences不够用,那么就创建一个数据库

3. 结构化数据,一定要创建数据库,虽然这稍显烦锁,但是好处无穷

4. 文件就是用来存储文件(也即非配置信息或结构化数据),如文本文件,二进制文件,PC文件,多媒体文件,下载的文件等等。

5. 尽量不要创建文件

6. 如果创建文件,如果是私密文件或是重要文件,就存储在内部存储,否则放到外部存储

7. 能用简单的方式处理,就不要用复杂的方式,存储几个数据或简单对象,用SharedPreference也能做到,何必还去写个ContentProvider。


几个获取文件目录的API 

1Context.openFileOutput(string,Context.MODE_PRIVATE); 打开一个文件输出流
// File file = new File(context.getCacheDir(),"info.dat");
// FileOutputStream fos = new FileOutputStream(file);
//上面两句等同于下面这一句代码:
FileOutputStream fos = context.openFileOutput("info.dat", Context.MODE_PRIVATE);

2Context.openFileInput(string); 打开一个文件输入流
// File file = new File(context.getCacheDir(),"info.dat");
// FileInputStream fis = new FileInputStream(file);
//上面两句等同于下面这一句代码:
FileInputStream fis = context.openFileInput("info.dat");

3Context.getCacheDir(); 获取的目录:/data/data/当前应用程序包名/cache/
context.getCacheDir();//data/data/当前应用程序包名/cache/

4Context.getFilesDir(); 获取的目录:/data/data/当前包名/files/



版权声明:本文为qq_16580279原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。