public class SPUtils {
/**
?* 保存在手機(jī)里面的文件名晒衩,(一個(gè)名字一個(gè)Preferences實(shí)例)
* fileName表示文件名饿这,其取值不能為空怜浅,也不能包含路徑,默認(rèn)存儲(chǔ)目錄可以通過(guò)context.getPreferencesDir()獲取瓦阐。
?*/
? ? private static final String FILE_NAME = "xxx_xxx_data";
?/**
* 保存數(shù)據(jù)的方法披泪,我們需要拿到保存數(shù)據(jù)的具體類(lèi)型纤子,然后根據(jù)類(lèi)型調(diào)用不同的保存方法
*/
? ? public static void putData(String key, Object object) {
? ? ? ? DatabaseHelper databaseHelper = new DatabaseHelper(一個(gè)context);?// context類(lèi)型為ohos.app.Context。
? ? ? ? // 獲取到要操作的Preferences實(shí)例
? ? ? ? Preferences preferences = databaseHelper.getPreferences(FILE_NAME);
? ? ? ? if (object instanceof String) {
? ? ? ? ? ????? preferences.putString(key, (String) object);
? ? ? ? } else if (object instanceof Integer) {
? ? ? ? ? ????? preferences.putInt(key, (Integer) object);
? ? ? ? } else if (object instanceof Boolean) {
? ? ? ? ? ????? preferences.putBoolean(key, (Boolean) object);
? ? ? ? } else if (object instanceof Float) {
? ? ? ? ? ????? preferences.putFloat(key, (Float) object);
? ? ? ? } else if (object instanceof Long) {
? ? ? ? ? ????? preferences.putLong(key, (Long) object);
? ? ? ? } else {
? ? ? ? ? ????? preferences.putString(key, object.toString());
? ? ? ? }
? ? ? ? // 將數(shù)據(jù)同步寫(xiě)入文件
? ? ? ? preferences.flushSync();
? ? }
?/**
* 得到保存數(shù)據(jù)的方法款票,我們根據(jù)默認(rèn)值得到保存的數(shù)據(jù)的具體類(lèi)型控硼,然后調(diào)用相對(duì)于的方法獲取值
*/
public static Object getData(String key, Object defaultObject) {
DatabaseHelper databaseHelper =new DatabaseHelper(一個(gè)context);?
? ? // 獲取到要操作的Preferences實(shí)例
? ? Preferences preferences = databaseHelper.getPreferences(FILE_NAME);
? ? if (defaultObjectinstanceof String) {
return preferences.getString(key, (String) defaultObject);
? ? }else if (defaultObjectinstanceof Integer) {
return preferences.getInt(key, (Integer) defaultObject);
? ? }else if (defaultObjectinstanceof Boolean) {
return preferences.getBoolean(key, (Boolean) defaultObject);
? ? }else if (defaultObjectinstanceof Float) {
return preferences.getFloat(key, (Float) defaultObject);
? ? }else if (defaultObjectinstanceof Long) {
return preferences.getLong(key, (Long) defaultObject);
? ? }
return null;
}
/**
* 刪除數(shù)據(jù)庫(kù)(會(huì)刪除文件和文件對(duì)應(yīng)的Preferences單實(shí)例。)
* 刪除Preferences單實(shí)例時(shí)艾少,應(yīng)用不允許再使用該實(shí)例進(jìn)行數(shù)據(jù)操作卡乾,否則會(huì)出現(xiàn)數(shù)據(jù)一致性問(wèn)題。
*/
public static void clear() {
DatabaseHelper databaseHelper =new DatabaseHelper(一個(gè)context);
? ? databaseHelper.deletePreferences(FILE_NAME);
}