1. 文件存储
文件存储是android中最基本的一种数据存储方式。
package com.example.liu.filepersistencetest;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.EditText;
import java.io.BufferedInputStream;
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=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit=(EditText)findViewById(R.id.edit);
String str=load("data_test");
edit.setText(str);
}
@Override
protected void onDestroy(){
super.onDestroy();
String str=edit.getText().toString();
save(str,"data_test");
}
//将数据str写入到文件file中
public void save(String str,String file){
FileOutputStream out=null;
BufferedWriter writer=null;
try{
out=openFileOutput(file, Context.MODE_PRIVATE); //可选模式Context.MODE_APPEND
writer=new BufferedWriter(new OutputStreamWriter(out));
writer.write(str);
}catch (IOException e){
e.printStackTrace();
}finally {
try{
if(writer!=null){
writer.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
//从文件file中加载数据到String
public String load(String file){
FileInputStream in=null;
BufferedReader reader=null;
StringBuilder content=new StringBuilder();
try{
in=openFileInput(file);
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();
}
}
2. SharedPreferences存储
SharedPreferences来进行数据持久化比文件方便很多。
3. SQLite数据库存储
android内置数据库,SQLite 轻量级关系型数据库,运算速度快,占用资源少,特别适合在移动设备上使用。不仅支持SQL语法,也支持ACID事务。
操作主要包括数据库的创建和升级,数据的增删改查。