public class SPUtils {
/**
* 保存在手机里面的文件名,(一个名字一个Preferences实例)
* fileName表示文件名,其取值不能为空,也不能包含路径,默认存储目录可以通过context.getPreferencesDir()获取。
*/
private static final String FILE_NAME = "xxx_xxx_data";
/**
* 保存数据的方法,我们需要拿到保存数据的具体类型,然后根据类型调用不同的保存方法
*/
public static void putData(String key, Object object) {
DatabaseHelper databaseHelper = new DatabaseHelper(一个context); // context类型为ohos.app.Context。
// 获取到要操作的Preferences实例
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());
}
// 将数据同步写入文件
preferences.flushSync();
}
/**
* 得到保存数据的方法,我们根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
*/
public static Object getData(String key, Object defaultObject) {
DatabaseHelper databaseHelper =new DatabaseHelper(一个context);
// 获取到要操作的Preferences实例
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;
}
/**
* 删除数据库(会删除文件和文件对应的Preferences单实例。)
* 删除Preferences单实例时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。
*/
public static void clear() {
DatabaseHelper databaseHelper =new DatabaseHelper(一个context);
databaseHelper.deletePreferences(FILE_NAME);
}