android中数据持久存储分为三种
1.文件存储
android中的Context类提供了一个openFileOutput(文件名,存储模式)和openFileInput(文件名)方法用来返回一个文件输出输入流对象,可以用来把需要保存的数据进行文件存储和读取。
这种存储都是默认存储在该应用的缓存文件当中不需要指定文件路径。data/data下的对应应用。
文件存储
FileOutputStream out=null;
BufferdWriter writer =null;
out=openFileOutput(“data”,Context.MODE_PRIVATE);
writer = new BufferdWriter(new OutputStreamWriter(out));
writer.writer(要存的数据);
文件读取
FileInputStream input =null;
BufferdReader reader =null;
input=openFileInput(文件名);
reader = new BufferedReader(new InputStreamReader(input));
String line =”“;
while((line =reader.readLine())!=null){
content.append(line);
}
2.sharedpreference
sharedpreference是以Map数据格式来存储数据的,存储的文件类型为xml。
如果需要用sharedPreference来存储数据,则需要获取sharedpreference实例,android中提供了3种方式来获取实例
a.Context类中的getSharedPreferences()方法
存数据
SharedPreferences.Editor editor = getSharedPreferences(文件名,模式).edit();
editor.putString();
editor.put….
b.Activity类中的getPreferences()方法
c.PreferenceManager类中的getDefaultSharedPreferences()方法
读数据
与存数据对应首先通过Context类获取sharePreference的实例
SharedPreferences pref= getShardePreferences(文件名,模式);
然后pref.getString(key,value)来获取存储的数据
3.数据库存储
由于文件存储和SharedPreferences存储的数据格式有限,只能存储一些简单的数据和键值对,当需要存储大量关系型数据时则还是需要用数据库来存储数据。
android中提供了一个SQLiteOpenHelper抽象类来创建和更新数据库
使用步骤
a. 写一个自己的帮助类MyDatabaseHelper去继承SQLiteOpenHelper
需要重写一个构造函数和两个方法
构造方法
onCreate()
onUpgrade()
b.在活动中去实例化帮助类对象
MyDatabaseHelper dbHelper =new MyDatabaseHelper(有几个参数需要设置)
SqliteDatabase db=dbHelper.getWriteableDatabase();这个方法不仅可以创建和升级数据库还会返回一个SqliteDatabase 对象来操作数据库
db.insert()
db.update()
db.delete()
db.query()
为了更方便的使用数据库,android提供了一系列的开源库来让数据库操作更方便。
LitePal库的使用。