Android 常用的存儲方式有3種。前兩種基本在Activity 子類類中使用。
- 文件存儲
- SharedPreferences 對象存儲
- SQLite(在Android 講解:存儲 (2))
文件存儲
文件存儲分爲字節存儲,和字符存儲。
在Activity 可以使用以下代碼獲取輸入輸出流。
輸入流
openFileInput(fileName);
fileName 是文件的名稱。
輸出流
openFileOutput(fileName, MODE);
MODE 是打開的模式,在4.2之前有四種打開方式,現在有兩個,其他兩個容易引起安全漏洞。
MODE_PRIVATE(每次打開都新建),MODE_APPEND(追加內容)。
其他
在獲取文件的輸入輸出流時,fileName 只能爲文件的名稱,不能帶有路徑。
文件的存儲位置在:/data/data/<packageName>/files/fileName
SharedPrefernces 對象存儲
SharedPrefernces 是Android 中的一個對象,通過這個對象,可以把數據持久化到XML文件中。
SharedPreferences sf = getPreferences(MODE_APPEND);
Editor editor = sf.edit();
//添加數據
editor.putString("username", "admin");
editor.putString("password", "123456");
editor.commit();
//獲取數據
String username = sf.getString("username", null);
String password = sf.getString("password", null);
Log.i(tag, "username:" + username);
Log.i(tag, "password:" + password);
SharedPrefernces 對象有3 種方式獲取:
- getPreferences(MODE);
- PreferenceManager.getDefaultSharedPreferences(Context);
- context.getSharedPrefernces(fileName, MODE);
1. getPreferences(MODE);
getPreferences(MODE)
MODE 獲取方式,MODE_PRIVATE(每次打開都新建),MODE_APPEND(追加內容)。
當某個Activity 第一次使用這個方法時,則會在:/data/data/<packageName>/shared_prefs/fileName
生成一個文件。
2. PreferenceManager.getDefaultSharedPreferences(context);
PreferenceManager.getDefaultSharedPreferences(Context);
context 是一個Context 對象,一般爲Activity 對象,此獲取方法的獲取模式是固定的MODE_PRIVATE。
生成的存儲文件:/data/data/<packageName>/shared_prefs/fileName
。
fileName 是<packageName> + _preferences
,packageName 是應用程序包名。
4. context.getSharedPrefernces(fileName, MODE);
context.getSharedPrefernces(fileName, MODE);
是比較靈活的一個,可以通過文件名獲取,並且也可以知道獲取模式。