您好,登錄后才能下訂單哦!
這篇文章主要介紹“Android文件存儲與SharedPreferences存儲方式是什么”,在日常操作中,相信很多人在Android文件存儲與SharedPreferences存儲方式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android文件存儲與SharedPreferences存儲方式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
持久化技術簡介
文件存儲
1. 將數據存儲到文件中
2. 從文件中讀取數據
SharedPreferences 存儲
1. 將數據存儲到 SharedPreferences 中
2. 從 SharedPreferences 中讀取數據
數據持久化就是指將那些內存中的瞬時數據保存到存儲設備中,保證即使在手機或計算機關機的情況下,這些數據也不會丟失。保存在內存中的數據是處于瞬時狀態的,而保存在存儲設備的數據是處于持久狀態的。持久化技術提供了一種機制,可以讓數據在瞬時狀態和持久狀態之間進行切換
文件存儲是 Android 中最基本的數據存儲方式,它不對存儲的內容進行格式化處理,所有數據都是原封不動的保存到文件當中,適合存儲一些簡單的文本數據或二進制數據
Context
類提供了一個 openFileOutput()
方法,可以將數據存儲到指定的文件中
fun save(inputText: String) { try { val output = openFileOutput("data", Context.MODE_PRIVATE) val writer = BufferedWriter(OutputStreamWriter(output)) writer.use { it.write(inputText) } } catch (e: IOException) { e.printStackTrace() } }
openFileOutput()
方法接收兩個參數:
第一個參數是文件名,在文件創建的時候使用。指定的文件名可以不包含路徑,因為所有的文件都默認存儲到 /data/data/<package name>/files/ 目錄下
第二個參數是文件的操作模式,主要有 MODE_PRIVATE
和 MODE_APPEND
兩種模式可選,默認是 MODE_PRIVATE
,表示當指定相同文件名時,所寫入的內容將會覆蓋原文件的內容。而 MODE_APPEND
則表示如果文件存在,就往文件追加內容
類似于將數據存儲到文件中,Context
類提供了一個 openFileInput()
方法,用于從文件中讀取數據
fun load(): String { val content = StringBuilder() try { val input = openFileInput("data") val reader = BufferedReader(InputStreamReader(input)) reader.use { reader.forEachLine { content.append(it) } } } catch (e: IOException) { e.printStackTrace() } return content.toString() }
openFileInput()
方法只接收一個參數,即要讀取的文件名,然后系統自動到 /data/data/<package name>/files 目錄下加載這個文件
不同于文件存儲,SharedPreferences 是使用鍵值對的方式來存儲數據的。也就是說,當保存一條數據時,需要給這條數據提供一個對應的鍵。SharedPreferences 支持多種不同的數據類型存儲。
要想使用 SharedPreferences,首先要獲得 SharedPreferences 對象。Android 中主要提供以下兩種方法用于得到 SharedPreferences 對象:
Context
類中的 getSharedPreferences()
方法,此方法接收兩個參數:第一個參數指定 SharedPreferences 文件的名稱,存放在 /data/data/<package name>/shared_prefs/ 目錄下;第二個參數指定操作模式,目前只有 MODE_PRIVATE
可選,表示只有當前應用程序才可以對這個 SharedPreferences 文件進行讀寫
Activity
類中的 getPreferences()
方法,它只接受一個操作模式參數,因為使用這個方法會自動將當前 Activity 的類名作為 SharedPreferences 的文件名
得到 SharedPreferences 對象之后,就可以開始向 SharedPreferences 存儲數據了
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { val editor = getSharedPreferences("data", Context.MODE_PRIVATE).edit() editor.putString("name", "Tom") editor.putInt("age", 28) editor.putBoolean("married", false) editor.apply() } }
SharedPreferences 對象提供了一系列 get 方法,用于讀取存儲的對應類型的數據。這些 get 方法都接收兩個參數:第一個參數是鍵,第二個參數是默認值,表示傳入的鍵找不到對應的值時以什么樣的默認值來返回
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) button.setOnClickListener { val prefs = getSharedPreferences("data", Context.MODE_PRIVATE) val name = prefs.getString("name", "") val age = prefs.getInt("age", 0) val married = prefs.getBoolean("married", false) } }
到此,關于“Android文件存儲與SharedPreferences存儲方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。