數據持久化的引入
應用的某些數據(比如登錄信息),我們並不希望每次都要輸入驗證,此時使用持久化就能解決這種問題。
持久化的常用技術
文件存儲、SharedPreference存儲、數據庫存儲
文件存儲的使用(瞭解)
存儲 核心代碼如下
FileOutputStream fileOutputStream = null;
BufferedWriter bufferedWriter = null;
try {
fileOutputStream = openFileOutput("data", MODE_PRIVATE);
bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));
bufferedWriter.write(string);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (bufferedWriter != null) {
try {
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
讀取 核心代碼如下
FileInputStream fileInputStream = null;
BufferedReader bufferedReader = null;
StringBuilder stringBuilder = new StringBuilder();
try {
fileInputStream = openFileInput("data");
bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));
String line = "";
while ((line = bufferedReader.readLine()) != null){
stringBuilder.append(line);
}
} catch (Exception e) {
if (bufferedReader != null) {
try {
bufferedReader.close();
} catch (IOException e1) {
e.printStackTrace();
}
}
}
return stringBuilder.toString();
sp存儲的使用(重點)
存儲,核心代碼如下
SharedPreferences.Editor editor = getSharedPreferences("sp", MODE_PRIVATE).edit();
editor.putInt("age", 12);
editor.putString("name", "yfg");
editor.putBoolean("married", false);
editor.apply();
讀取,核心代碼如下
SharedPreferences preferences = getSharedPreferences("sp",MODE_PRIVATE);
String name = preferences.getString("name","");
int age = preferences.getInt("age",0);
boolean married = preferences.getBoolean("married",false);
數據庫存儲的使用(瞭解)
這塊內置的sqlite,我們使用的較少,推薦使用greenDao,
寫在最後