android第一行代碼學習筆記——數據存儲(文件存儲和SharedPreferences存儲)

持久化技術

數據持久化就是指將內存中的瞬時數據保存到存儲設備中,android中主要提供了三種方式:文件存儲,SharedPrefences存儲以及數據庫存儲

文件存儲

簡介

文件存儲不對存儲的內容進行任何的格式化處理,所有數據都是原封不動的保存到文件當中,比較適合存儲一些簡單的文本數據或二進制數據

內容

存儲

  1. 使用Context類的openFileOutput()方法獲得一個FileOutputStream對象,然後使用java的IO流將數據存儲到指定的文件中
  2. 該方法接收兩個參數:第一個參數是文件名,第二個參數是文件的操作模式。

    文件名不可以包含路徑,所有文件都是默認存儲到/data/data/< package name>files/目錄下的。
    文件操作模式有兩種可以選:MODE_PRIVATE(默認的操作模式,若文件存在,則覆蓋原文件中的內容)和MODE_APPEND(若文件存在,則追加寫入,若不存在,則創建新文件)

讀取

  1. 從文件中讀取數據:使用Context類的openFileInput()方法獲得FileInputStream對象,然後使用java的IO流進行文件讀取。
  2. 該方法只接受一個參數,即要讀取的文件名,然後系統會自動到/data/data/< package name>files/文件下加載這個問價,並返回一個FileInputStream對象,然後通過java的IO流將數據讀取出來。

SharedPreferences存儲

簡介

SharedPreferences使用鍵值對的方式來存儲數據,當保存一條數據時需要給這條數據提供一個鍵,然後在讀取數據時通過鍵將對應的值讀取出來。SharedPreferences還支持多種不同的數據類型存儲

內容

  • 要使用SharedPreferences來存儲數據,必須先獲取到SharedPreferences對象。android中提供了三種方法獲取SharedPreferences對象:

    • Context類中的getSharedPreferences()方法
      • 此方法接受兩個參數:第一個參數指定SharedPreferences文件的名稱,第二個參數用於指定操作模式,目前只有MODE_PRIVATE這一種模式,表示只有當前的應用程序纔可以對這個SharedPreferences文件進行讀寫
    • Activity類中的getPreferences()方法
      • 該方法和Context類的getSharedPreferences()方法類似,但他只接受一個操作模式參數,此方法會自動將當前活動的類名作爲SharedPreferences的文件名
    • PreferenceManager類中的getDefaultSharedPreferences()方法
      • 這是一個靜態方法,它接受一個Context參數,並自動使用當前應用程序的包名作爲前綴來命名SharedPreferences文件。
  • 向SharedPreferences文件中存儲數據,主要分爲三步:

    • 調用SharedPreferences對象的edit()方法來獲取一個SharedPreferences.Editor對象
    • 向SharedPreferences.Editor對象中調用putXxx()方法添加數據
    • 調用apply()方法將添加的數據提交,從而完成數據存儲操作
  • 從SharedPreferences中讀取數據,SharedPreferences對象中每種get方法都對應了SharedPreferences.Editor中的一種put方法。get方法接受兩個參數,第一個參數是鍵,第二個參數是默認值,即當傳入的鍵找不到對應的值時會返回該值。

    SharedPreferences.Editor editor = getSharedPreferences("date", MODE_PRIVATE).edit();
    editor.putInt("age", 19);
    editor.apply();
    ---------------------
    SharedPreferences sharedPreferences = getSharedPreferences("date", MODE_PRIVATE).edit();
    Log.d("MainActivity", sharedPreferences.getInt("age", 0));
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章