中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android文件存儲與SharedPreferences存儲方式是什么

發布時間:2021-10-26 13:39:43 來源:億速云 閱讀:185 作者:iii 欄目:開發技術

這篇文章主要介紹“Android文件存儲與SharedPreferences存儲方式是什么”,在日常操作中,相信很多人在Android文件存儲與SharedPreferences存儲方式是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android文件存儲與SharedPreferences存儲方式是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目錄
  • 持久化技術簡介

  • 文件存儲

    • 1. 將數據存儲到文件中

    • 2. 從文件中讀取數據

  • SharedPreferences 存儲

    • 1. 將數據存儲到 SharedPreferences 中

    • 2. 從 SharedPreferences 中讀取數據

持久化技術簡介

數據持久化就是指將那些內存中的瞬時數據保存到存儲設備中,保證即使在手機或計算機關機的情況下,這些數據也不會丟失。保存在內存中的數據是處于瞬時狀態的,而保存在存儲設備的數據是處于持久狀態的。持久化技術提供了一種機制,可以讓數據在瞬時狀態和持久狀態之間進行切換

文件存儲

1. 將數據存儲到文件中

文件存儲是 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_PRIVATEMODE_APPEND 兩種模式可選,默認是 MODE_PRIVATE,表示當指定相同文件名時,所寫入的內容將會覆蓋原文件的內容。而 MODE_APPEND 則表示如果文件存在,就往文件追加內容

2. 從文件中讀取數據

類似于將數據存儲到文件中,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 支持多種不同的數據類型存儲。

1. 將數據存儲到 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()
    }
}

2. 從 SharedPreferences 中讀取數據

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存儲方式是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

岢岚县| 谢通门县| 宁城县| 盖州市| 马鞍山市| 西乌珠穆沁旗| 子洲县| 资源县| 肥乡县| 通州区| 新宾| 宾阳县| 余姚市| 靖边县| 分宜县| 林周县| 绍兴县| 湘乡市| 屏山县| 南投县| 平顺县| 昌乐县| 花莲县| 苏尼特右旗| 遂溪县| 兴山县| 张家界市| 共和县| 亚东县| 合阳县| 乡城县| 平武县| 永川市| 汉川市| 通辽市| 景宁| 陆丰市| 屏南县| 河东区| 五指山市| 桐柏县|