今天,我接着上一篇的網絡工具類,在寫一篇關於我們本地存儲的工具類,該類是在系統本身的基礎上,稍加整理了下,主要是可以本地保存對象和獲取對象。而對於SharedPreferences 的用法,如果有不懂的親們,可以網上或者看書瞭解下,好的,接着上代碼:
/**
* @類名:SharedPreferencesSava
* @類描述:本地存儲工具類
* @修改人:
* @修改時間:
* @修改備註:
* @版本:
*/
public class SharedPreferencesSava {
private static SharedPreferencesSava instance = null;
public static SharedPreferencesSava getInstance() {
if (instance == null) {
instance = new SharedPreferencesSava();
}
return instance;
}
/**
* @方法說明:保存對象
* @方法名稱:savaObject
* @param context
* @param spName
* @param key
* @param ob
* @返回void
*/
public boolean savaObject(Context context, String spName, String key,
Object ob) {
if (ob == null) {
return false;
}
boolean falg = false;
SharedPreferences preferences = WKXApplication.getAppContext()
.getSharedPreferences(spName, context.MODE_PRIVATE);
// 創建字節輸出
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = null;
try {
// 創建對象輸出流,並封裝字節流
oos = new ObjectOutputStream(baos);
// 將對象寫入字節流
oos.writeObject(ob);
// 將字節流編碼成base64的字符竄
String oAuth_Base64 = new String(Base64.encodeBase64(baos
.toByteArray()));
falg = preferences.edit().putString(key, oAuth_Base64).commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (oos != null) {
oos.close();
}
if (baos != null) {
baos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return falg;
}
/**
* @方法說明:獲取存儲的對象
* @方法名稱:getObject
* @param context
* @param spName
* @param key
* @return
* @返回值:Object
*/
public Object getObject(Context context, String spName, String key) {
Object ob = null;
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
String productBase64 = preferences.getString(key, "");
// 讀取字節
byte[] base64 = Base64.decodeBase64(productBase64.getBytes());
// 封裝到字節流
ByteArrayInputStream bais = new ByteArrayInputStream(base64);
ObjectInputStream bis = null;
try {
// 再次封裝
bis = new ObjectInputStream(bais);
// 讀取對象
ob = bis.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (bis != null) {
bis.close();
}
if (bais != null) {
bais.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return ob;
}
/**
* @方法說明:存儲int數據
* @方法名稱:savaIntValue
* @param context
* @param spName
* @param key
* @param value
* @返回void
*/
public void savaIntValue(Context context, String spName, String key,
int value) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
preferences.edit().putInt(key, value).commit();
}
/**
* @方法說明:獲取int數據
* @方法名稱:getIntValue
* @param context
* @param spName
* @param key
* @return
* @返回int
*/
public int getIntValue(Context context, String spName, String key) {
return getIntValue(context, spName, key, 0);
}
/**
* @方法說明:獲取int數據
* @方法名稱:getIntValue
* @param context
* @param spName
* @param key
* @param defaultValue
* @return
* @返回int
*/
public int getIntValue(Context context, String spName, String key,
int defaultValue) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getInt(key, defaultValue);
}
/**
* @方法說明:存儲float數據
* @方法名稱:savaFloatValue
* @param context
* @param spName
* @param key
* @param value
* @返回void
*/
public void savaFloatValue(Context context, String spName, String key,
float value) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
preferences.edit().putFloat(key, value).commit();
}
/**
* @方法說明:獲取float數據
* @方法名稱:getFloatValue
* @param context
* @param spName
* @param key
* @return
* @返回float
*/
public float getFloatValue(Context context, String spName, String key) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getFloat(key, 0);
}
/**
* @方法說明:存儲boolean數據
* @方法名稱:savaBooleanValue
* @param context
* @param spName
* @param key
* @param value
* @返回void
*/
public void savaBooleanValue(Context context, String spName, String key,
boolean value) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
preferences.edit().putBoolean(key, value).commit();
}
/**
* @方法說明:獲取boolean數據
* @方法名稱:getBooleanValue
* @param context
* @param spName
* @param key
* @return
* @返回boolean
*/
public boolean getBooleanValue(Context context, String spName, String key) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getBoolean(key, false);
}
/**
* @方法說明:獲取boolean數據
* @方法名稱:getBooleanValue
* @param context
* @param spName
* @param key
* @param isDefault
* @return
* @返回boolean
*/
public boolean getBooleanValue(Context context, String spName, String key,
boolean isDefault) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getBoolean(key, isDefault);
}
/**
* @方法說明:存儲long數據
* @方法名稱:savaLongValue
* @param context
* @param spName
* @param key
* @param value
* @返回void
*/
public void savaLongValue(Context context, String spName, String key,
long value) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
preferences.edit().putLong(key, value).commit();
}
/**
* @方法說明:獲取long數據
* @方法名稱:getLongValue
* @param context
* @param spName
* @param key
* @return
* @返回long
*/
public long getLongValue(Context context, String spName, String key) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getLong(key, 0);
}
/**
* @方法說明:存儲String數據
* @方法名稱:savaStringValue
* @param context
* @param spName
* @param key
* @param value
* @返回void
*/
public void savaStringValue(Context context, String spName, String key,
String value) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
preferences.edit().putString(key, value).commit();
}
/**
* @方法說明:獲取String數據
* @方法名稱:getStringValue
* @param context
* @param spName
* @param key
* @return
* @返回String
*/
public String getStringValue(Context context, String spName, String key) {
SharedPreferences preferences = context.getSharedPreferences(spName,
context.MODE_PRIVATE);
return preferences.getString(key, "");
}
}