一天一点android知识(持久化技术——文件存储)

来源:互联网 发布:无限刷微信红包软件 编辑:程序博客网 时间:2024/06/01 10:23

数据持久化:将内存中的瞬时数据保存到存储设备中,保证即使在手机或电脑关机的情况下,这些数据仍然不会丢失。这里介绍第一种方式文件存储,这种方式是将数据原封不动地保存到文件当中去,其中重点用到了save和load函数(java又得重新梳理一下,好痛苦)。
MainActivity

 package com.example.filepersistencetest;import android.content.Context;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;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.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class MainActivity extends AppCompatActivity {    private EditText edit;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        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();        }    }    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();    }    @Override    protected void onDestroy() {        super.onDestroy();        String inputText = edit.getText().toString();        save(inputText);    }    public void save(String inputText){        FileOutputStream out = null;        BufferedWriter writer = null;        try {            out = openFileOutput("data", Context.MODE_PRIVATE);            writer = new BufferedWriter(new OutputStreamWriter(out));            writer.write(inputText);        } catch (IOException e){            e.printStackTrace();        }finally {            try{                if(writer!=null){                    writer.close();                }            }catch (IOException e){                e.printStackTrace();            }        }    }}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <EditText        android:id="@+id/edit"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:hint="Type something here"/></LinearLayout>
0 0
原创粉丝点击