今天,我接着上一篇的网络工具类,在写一篇关于我们本地存储的工具类,该类是在系统本身的基础上,稍加整理了下,主要是可以本地保存对象和获取对象。而对于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, "");
}
}