數據持久化
1.文件持久化:
Context類中提供的 openFileInput()和 openFileOutput()方法, 以後就是利用 Java的各類流來進行讀寫
操做就能夠了。默認路徑:/data/data/<package name>/files/數據庫
2.SharedPreferences 存儲
不一樣於文件的存儲方式,SharedPreferences 是使用鍵值對的方式來存儲數據的。也就是
說當保存一條數據的時候,須要給這條數據提供一個對應的鍵,這樣在讀取數據的時候就可
以經過這個鍵把相應的值取出來。並且 SharedPreferences還支持多種不一樣的數據類型存儲,
若是存儲的數據類型是整型,那麼讀取出來的數據也是整型的,存儲的數據是一個字符串,
讀取出來的數據仍然是字符串。文件存放在:/data/data/<packagename>/shared_prefs/
1.獲取該類的方法有三種:
1.Context類中的 getSharedPreferences()方法
2.Activity類中的 getPreferences()方法
3.PreferenceManager類中的 getDefaultSharedPreferences()方法
2.使用方式:
1. 調用 SharedPreferences對象的 edit()方法來獲取一個 SharedPreferences.Editor 對象。
2. 向 SharedPreferences.Editor 對象中添加數據,好比添加一個布爾型數據就使用
putBoolean 方法,添加一個字符串則使用 putString()方法,以此類推。
3. 調用 commit()方法將添加的數據提交,從而完成數據存儲操做。對象
3.SQLite 數據庫存儲
1.繼承SQLiteOpenHelper類,重寫onCreate方法和onUpgrade方法
2.數據庫文件會存放在/data/data/<package name>/databases/目錄下
3. getReadableDatabase() 和getWritableDatabase()。
這兩個方法均可以建立或打開一個現有的數據庫(若是數據庫已存在則直接打開,不然建立一個新的數據庫),
並返回一個可對數據庫進行讀寫操做的對象。不一樣的是,當數據庫不可寫入的時候(如磁盤空間已滿)
getReadableDatabase()方法返回的對象將以只讀的方式去打開數據庫,而 getWritableDatabase()方法則將出現異常
4.事務
1. SQLiteDatabase.beginTransaction(); // 開啓事務
2.SQLiteDatabase.setTransactionSuccessful(); // 事務已經執行成功
3.SQLiteDatabase.endTransaction(); // 結束事務
5.數據建立要保證一會被調用一次,否則會出現數據沖掉的現象繼承