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