SharedPreferences存储bean

SharedPreferences存储bean

package com.alipayjf.game.util;

import android.content.Context;
import android.content.SharedPreferences;
import android.util.Base64;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;

public class SharedPreferencesUtil {
	private static final String FILENAME = "CDJ";

private static String getFileName(Context context) {
	return context.getPackageName() + FILENAME;
}

private static SharedPreferences getSharedPreferences(Context context) {
	SharedPreferences sharedPreferences = context.getSharedPreferences(
			getFileName(context), Context.MODE_MULTI_PROCESS);
	return sharedPreferences;
}

/**
 * 存放实体类以及任意类型
 *
 * @param context 上下文对象
 * @param key
 * @param obj
 */
public static void putBean(Context context, String key, Object obj) {
	if (obj instanceof Serializable) {// obj必须实现Serializable接口,否则会出问题
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(baos);
			oos.writeObject(obj);
			String string64 = new String(Base64.encode(baos.toByteArray(), 0));
			SharedPreferences.Editor editor = getSharedPreferences(context).edit();
			editor.putString(key, string64).commit();
		} catch (IOException e) {
			e.printStackTrace();
		}

	} else {
		throw new IllegalArgumentException("the obj must implement Serializble");
	}

}

public static Object getBean(Context context, String key) {
	Object obj = null;
	try {
		String base64 = getSharedPreferences(context).getString(key, "");
		if (base64.equals("")) {
			return null;
		}
		byte[] base64Bytes = Base64.decode(base64.getBytes(), 1);
		ByteArrayInputStream bais = new ByteArrayInputStream(base64Bytes);
		ObjectInputStream ois = new ObjectInputStream(bais);
		obj = ois.readObject();
	} catch (Exception e) {
		e.printStackTrace();
	}
	return obj;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值