总结android数据持久化技术(1)

android数据持久化技术大致有三类,下面逐个阐述。
一、文件存储
利用context类中的openFileInput()方法和openFileOutput()实现数据的存储。
案例:实现textview控件输入数据的保存以及再次打开app时实现数据自动加载。
主要的方法为:
load()
用java流实现自动加载。
onDestroy()
当程序被销毁时调用这个方法,该方法体内调用方法save()实现数据的保存,保存到”data”文件夹
save()
用java流实现文件保存
代码实例:

package com.example.liangzi.fpc;

import android.app.Activity;
import android.content.Context;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

import android.text.TextUtils;
import android.widget.EditText;
import android.os.Bundle;
import android.widget.Toast;

/**
 * Created by liangzi on 2017/5/13.
 */

public class Mainactivity extends Activity {
    private EditText edit;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);
        edit = (EditText) findViewById(R.id.edit);
        String inputtext = load();
        if(!TextUtils.isEmpty(inputtext)){
            edit.setText(inputtext);
            edit.setSelection(inputtext.length());
            Toast.makeText(this,"restoring succeeded",Toast.LENGTH_SHORT).show();

        }

    }//end of method

    public String load(){
        FileInputStream in = null;
        BufferedReader reader = null;
        StringBuilder content = new StringBuilder();
        try {
            in = openFileInput("data");
            reader = new BufferedReader(new InputStreamReader(in));
            String line = "";
            while ((line = reader.readLine()) != null) {
                content.append(line);

            }

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

        }finally {
            if(reader != null){
                try{
                    reader.close();
                }catch(IOException e){
                    e.printStackTrace();
                }
            }
        }
        return content.toString();
    }

    public void onDestroy(){
        super.onDestroy();
        String inputtext = edit.getText().toString();
        save(inputtext);
    }//end of ondestroy

    public void save(String inputtext){
        FileOutputStream out = null;
        BufferedWriter bw = null;

        try{
            out = openFileOutput("data", Context.MODE_PRIVATE);
            bw = new BufferedWriter(new OutputStreamWriter(out));
            bw.write(inputtext);
        }catch(IOException e){
            e.printStackTrace();

        } finally{
            try{
                if(bw != null)
                    bw.close();
            }catch(IOException e){
                e.printStackTrace();
            }
        }
    }//end save method

}

二SharedPreferences存储

三SQLite

猜你喜欢

转载自blog.csdn.net/z5217632/article/details/72672841
今日推荐