import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Base64;
/**
*
* @ClassName: ShareParefenceObject
* @Description: TODO 保存对象
* @date 2014年9月22日 上午11:02:14
*
*/
public class ShareParefenceObject {
/**
* 保存对象
* @param context
* @param obj
* @param key
*/
public static void SaveObject(Context context, Object obj, String key) {
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
// 将Product对象保存在ObjectOutputStream对象中
oos.writeObject(obj);
SharedPreferences preferences = context.getSharedPreferences(
"base64", Context.MODE_PRIVATE);
Editor editor = preferences.edit();
// 将对象转换成byte数组,并将其进行base64转换。
String productBase64 = new String(Base64.encode(baos.toByteArray(),
Base64.DEFAULT));
editor.putString(key, productBase64);
editor.commit();
oos.close();
} catch (Exception e) {
// TODO: handle exception
}
}
/**
* 读取对象
* @param context
* @param key
* @return
*/
public static Object ReaderObject(Context context, String key) {
Object obj = null;
try {
SharedPreferences preferences = context.getSharedPreferences(
"base64", Context.MODE_PRIVATE);
// 从源xml文件中,读取Product对象的base64格式字符串
String base64Product = preferences.getString(key, "");
// ByteArrayOutputStream baos = new ByteArrayOutputStream();
// 将base64格式字符串还原成byte数组
byte[] productBytes = Base64.decode(base64Product.getBytes(),
Base64.DEFAULT);
ByteArrayInputStream bais = new ByteArrayInputStream(productBytes);
ObjectInputStream ois = new ObjectInputStream(bais);
// byte数组,转换成ActiveUserBean对象
obj = ois.readObject();
ois.close();
} catch (Exception e) {
// TODO: handle exception
}
return obj;
}
}