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

来源:互联网 发布:页面数据导出到excel 编辑:程序博客网 时间:2024/06/15 03:02

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

原创粉丝点击