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

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/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值