android SharedPreferences工具类

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值