1.SharedPreferences 用来保存少量的数据,且数据格式简单(字符串,Boolean等),主要保存应用程序的配置信息
SharedPreferences保存的数据主要是 key-value对。
SharedPreferences 本身是一个接口,无法直接创建实例,可通过以下方法获取实例:
1. Context类中的 getSharePreferences(String name,int mode)
2. Activity类中的 getPreferences(int mode)
3. PreferenceManager类中的getDefaultSharePreferences(Context context)
Mode类型目前只有MODE_PRIVATE(==0) 可选, 其他均已废弃。
name代表SharePreferences文件名
存取代码如下: 与SharedPreferences.Editor配合使用
SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putInt("age",28);
editor.apply();//editor.commit();也可提交,但是commit在前台执行,apply在后台执行,推荐apply
String name = getSharedPreferences("data",MODE_PRIVATE).getString("name",null);
int age = getSharedPreferences("data",MODE_PRIVATE).getInt("age",0);
2.文件(File 存储) 适合用于存储一些简单的文本数据或二进制数据
写入数据;
String data = "this data";
FileOutputStream out = null;
BufferedWriter writer =null;
try {
out = openFileOutput("data", Context.MODE_APPEND);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(data);
}catch (Exception e){
e.printStackTrace();
}finally {
try{
if (writer != null) {
writer.close();
}
}catch (Exception e){
}
}
读取数据:
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
try {
in = openFileInput("data");
reader = new BufferedReader(new InputStreamReader(in));
String ss = "";
while ((ss = reader.readLine()) != null) {
content.append(ss);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if(reader != null){
try {
reader.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
3.数据库存储
android系统内置了一个sqlite轻量级数据库,也有许多开源数据库框架可使用,如 GreenDAO等