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

数据存储种类:

数据存储详解(一)---->SharedPreferences(xml存储)_第1张图片
系列文档:
数据存储详解(一)—->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);

范例:

效果演示:
数据存储详解(一)---->SharedPreferences(xml存储)_第2张图片
代码详解:
主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的构造方法更广。

你可能感兴趣的:(数据存储)