1.數據持久化:將在內存中的瞬時數據保存在存儲設備中。瞬時數據:設備關機數據丟失。持久化技術提供一種機制能夠讓數據在瞬時狀態和持久狀態之間轉換。java
2.Android中簡單的三種存儲方式:文件存儲、SharedPreference 存儲以及數據庫存儲。數據庫
1.文件存儲 :不對數據做任何處理,將數據原封不動地存儲到文件中,適合存儲一些簡單的文本數據和二進制數據。 app
a.將數據存儲到文件中ui
Context類提供了一個openFileOutput()方法,能夠用於將數據存儲到文件中。這個方法接收兩個參數,第一個參數是文件名(文件名不能包含路徑,默認路徑爲/data/data/<packagename>/files/),第二個參數是文件的操做模式,主要有MODE_PRIVATE 和 MODE_APPEND兩種模式,前者是默認模式,當指定一樣文件名時,所寫入內容會覆蓋掉原文件的內容,後者表示文件名相同時將內容追加到原文件內容後,不存在該文件則建立新文件。openFileOutput 方法返回一個FileOutputStream對象。spa
public void save() { String data = "Data to save"; FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data", Context.MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(data); } catch (IOException e) { e.printStackTrace(); } finally { try { if (writer != null) { writer.close(); } } catch (IOException e) { e.printStackTrace(); } } }
/*
*步驟:
*1.經過openFileOutput()方法的到一個FIleOutputStream對象
*2.經過FileOutputStream對象構造出一個OutputStreamWriter對象
*3.經過OutputStreamWriter對象構造出BufferedWriter對象
*4.經過BufferedWriter將文本內容寫入文件
*/
b.從文件中讀取數據code
相似於將數據存儲到文本中,Context類中提供了一個openFIleInput()方法,用於從文本中讀取數據。這個方法只接收一個參數即要讀取文件的文件名,系統在默認目錄中找到這個文件後返回一個FilleInputStream對象,獲得這個對象後經過java IO流就能夠將數據讀取出來了。對象
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(); }/**1.先經過openFileInput獲取到FileInputStream對象*2.經過FileInputStream獲取到InputStreamReader對象*3.經過InputSTreamReader得到BufferedReader對象*4.經過BufferedReader進行一行行讀取,把文件中全部的文本內容所有讀取出來並存在StringBuilder中*5.將讀取到的內容返回*/