数据存储详解(一)---->SharedPreferences(xml存储)

数据存储种类:

这里写图片描述
系列文档:
数据存储详解(一)—->SharedPreferences(xml存储)
数据存储详解(二)—->File存储:内部存储 -Cache和外部存储-SD卡
数据存储详解(四)及四大组件之一 之—>ContentProvider(内容提供者)

SharedPreferences(xml存储):

使用:

1.获取SharedPreferences :
1)getSharedPreferences(“key”,MODE);
MODE:
MODE_PRIVATE:常用
MODE_WORLD_READABLE:可读
MODE_WORLD_WRITEABLE:可写
2)getPreferences(MODE);

范例:

效果演示:
这里写图片描述
代码详解:
主activity中:

public class MainActivity extends Activity implements OnClickListener {
    private Button mButtonwrite;
    private Button mButtonread;
    private TextView mTextView;
    private EditText mEditView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonwrite = (Button) findViewById(R.id.buttonwrite);
        mButtonread = (Button) findViewById(R.id.buttonread);
        mTextView = (TextView) findViewById(R.id.textView);
        mEditView = (EditText) findViewById(R.id.editText);
        mButtonwrite.setOnClickListener(this);
        mButtonread.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        /**
         * 写入数据到xml中存储
         */
        case R.id.buttonwrite:
            writeTo();

            break;
            /**
             * 将数据从xml中读出
             */
        case R.id.buttonread:
            readTo();
            break;

        default:
            break;
        }
    }

    public void readTo() {
        SharedPreferences preferences = getSharedPreferences("preferences_key",MODE_PRIVATE);//1.获得SharedPreferences
        String str = preferences.getString("str_key", "我是默认值");//2.取出相应的数据即可,第二个参数是如果没有相应的键值,所输出的默认值
        mTextView.setText(str);
    }

    public void writeTo() {
        SharedPreferences preferences = getSharedPreferences("preferences_key",MODE_PRIVATE);//1.获得SharedPreferences
        SharedPreferences.Editor editor = preferences.edit();//2.要写入必须先获得Editor,SharedPreferences本身没写方法
        editor.putString("str_key", mEditView.getText()+"");
        editor.commit();//3.必须提交,或者用apply()
    }

}


解析:
写入:必须用SharedPreferences中的Editor
这里写图片描述
读出:
1>也是先获得SharedPreferences,可以利用getSharedPreferences(“preferences_key”,MODE_PRIVATE);或者getPreferences(MODE_PRIVATE)
这里写图片描述

查看存储的方法:
这里写图片描述

延伸:读写数据的流:

PrintWriter和BufferedWriter的区别:
1. PrintWriter的print、println方法可以接受任意类型的参数,而BufferedWriter的write方法只能接受字符、字符数组和字符串;
2. PrintWriter的println方法自动添加换行,BufferedWriter需要显示调用newLine方法;
3. PrintWriter的方法不会抛异常,若关心异常,需要调用checkError方法看是否有异常发生;
4. PrintWriter构造方法可指定参数,实现自动刷新缓存(autoflush);
5. PrintWriter的构造方法更广。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值