標籤:資料 bool try sha 引入 android 說明 傳遞 日常
Android:日常學習筆記(9)———探究持久化技術引入持久化技術什麼是持久化技術
持久化技術就是指將那些記憶體中的瞬時資料儲存到存放裝置中,保證即使在手機或電腦關機的情況下,這些資料仍然不會丟失。
Android系統提供的三種持久化技術:
檔案儲存體、SharedPreference(使用共用喜好設定)儲存以及資料庫儲存。
檔案儲存體
說明:
您可以直接在裝置的內部儲存中儲存檔案。預設情況下,儲存到內部儲存的檔案是應用的私人檔案,其他應用(和使用者)不能訪問這些檔案。 當使用者卸載您的應用時,這些檔案也會被移除。
要建立私人檔案並寫入到內部儲存:
- 使用檔案名稱和操作模式調用
openFileOutput()。 這將返回一個 FileOutputStream。
- 使用
write() 寫入到檔案。
- 使用
close() 關閉串流。
要從內部儲存讀取檔案:
- 調用
openFileInput() 並向其傳遞要讀取的檔案名稱。 這將返回一個 FileInputStream。
- 使用
read() 讀取檔案位元組。
- 然後使用
close() 關閉串流。
通用代碼
public void save1(String text) { FileOutputStream out = null; BufferedWriter writer = null; try { out = openFileOutput("data",MODE_PRIVATE); writer = new BufferedWriter(new OutputStreamWriter(out)); writer.write(text); } catch (IOException e) { e.printStackTrace(); }finally { if(writer!=null) try { writer.close(); } catch (IOException e) { e.printStackTrace(); } } } public void read1() { FileInputStream in =null; BufferedReader reader = null; StringBuilder content = new StringBuilder(); try { in = openFileInput("data"); reader = new BufferedReader(new InputStreamReader(in)); String line =null; while ((line=reader.readLine())!=null) content.append(line); Toast.makeText(StoreActivity.this,content,Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); }finally { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } }SharedPreference儲存
說明:
不同於檔案的儲存方式,ShardPreference是使用索引值對的方式來儲存資料的。您可以使用 SharedPreferences 來儲存任何未經處理資料:布爾值、浮點值、整型值、長整型和字串。 此資料將跨多個使用者會話持續保留(即使您的應用已終止亦如此)。
擷取SharedPreferences對象:
getSharedPreferences() - 如果您需要多個按名稱(使用第一個參數指定)識別的喜好設定檔案,請使用此方法。
getPreferences() - 如果您只需要一個用於 Activity 的喜好設定檔案,請使用此方法。 由於這將是用於 Activity 的唯一喜好設定檔案,因此無需提供名稱。也就是說會把當前活動的類名作為檔案名稱。
寫入值:
- 調用
edit() 以擷取 SharedPreferences.Editor。
- 使用
putBoolean() 和 putString() 等方法添加值。
- 使用
commit() 提交新值
讀入值:
要讀取值,請使用 getBoolean() 和 getString() 等 SharedPreferences 方法。
通用代碼
public void save2() { SharedPreferences.Editor editor = getSharedPreferences("data",MODE_PRIVATE).edit(); editor.putString("name","Tom"); editor.putInt("age",20); editor.apply(); } public void read2() { SharedPreferences sharedPreferences = getSharedPreferences("data",MODE_PRIVATE); Log.d("StoreActivity",sharedPreferences.getString("name","")); Log.d("StoreActivity",""+sharedPreferences.getInt("age",100)); }
SQLite資料庫儲存
Android:日常學習筆記(9)———探究持久化技術