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, "");
    }
}

你可能感兴趣的:(android,开发,工具类,本地存储)