数据存储

Android 系统中主要提供了三种方式用于简单地实现数据持久化功能,即:

文件存储、

SharedPreference 存储、

数据库存储

当然,除了这三种方式之外,你还可以将数据保存在手机的 SD 卡中,不过使用文件、SharedPreference 或数据库来保存数据会相对更简单一些,而且比起将数据保存在 SD 卡中会更加的安全。

文件存储

package com.app.cceasy.datasavedemo;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.nio.Buffer;
import java.security.spec.ECField;

public class MainActivity extends AppCompatActivity {
    EditText inputEt;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        inputEt = (EditText) findViewById(R.id.id_et_please_input);

        String content = this.dataLoad();
        if(null != content){
            inputEt.setText(content);
            inputEt.setSelection(content.length());
            Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
        }


    }

    public String dataLoad(){
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();
        String line = null;
        FileInputStream in;
        try{
            in = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(in));

            while(null!=(line = reader.readLine())){
                content.append(line);
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if(reader != null){
                    reader.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }

        return content.toString();

    }

    public void dataSave(String strs){

        FileOutputStream out = null;

        BufferedWriter writer = null;


        try{
            out = openFileOutput("data", Context.MODE_PRIVATE);

            writer = new BufferedWriter(new OutputStreamWriter(out));
            writer.write(strs);



        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try{
                if (writer != null)
                    writer.close();

            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        dataSave(inputEt.getText().toString());
    }
}

 

 

SharedPreference 存储

要想使用SharedPreferences来存储数据

第一步:获取SharedPreferences对象

三种方法:

--Context 类中的 getSharedPreferences()方法

--Activity 类中的 getPreferences()方法

--PreferenceManager 类中的 getDefaultSharedPreferences()方法

     之后就可以开始向 SharedPreferences 文件中存储数据了,

第二步:向SharedPreferences文件中存储数据

1. 调用 SharedPreferences 对象的 edit()方法来获取一个 SharedPreferences.Editor 对象。
2. 向 SharedPreferences.Editor 对象中添加数据,比如添加一个布尔型数据就使用
putBoolean 方法,添加一个字符串则使用 putString()方法,以此类推。
3. 调用 commit()方法将添加的数据提交,从而完成数据存储操作。

---->

存储数据:

//一、得到SharedPreferences对象
SharedPreferences sharedPreferences = getSharedPreferences("account and password",MODE_PRIVATE);
//二、存放数据
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("REMEMBER_PASSWORD",true);
editor.putString("ACCOUNT",account);
editor.putString("PASSWORD",password);
editor.commit();

读取数据并恢复数据至输入框:

SharedPreferences sharedPreferences = getSharedPreferences("account and password", MODE_PRIVATE);
        Boolean isRemembered = sharedPreferences.getBoolean("REMEMBER_PASSWORD", false);
        if(isRemembered){
            String accountstr = sharedPreferences.getString("ACCOUNT", "");
            String passwordstr = sharedPreferences.getString("PASSWORD","");

            textAccount.setText(accountstr);
            textPassword.setText(passwordstr);
            checkBox4RememberPassword.setChecked(true);
        }
posted @ 2015-08-12 16:38  cuiz_book  阅读(260)  评论(0编辑  收藏  举报