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, "");
    }
}
發佈了42 篇原創文章 · 獲贊 3 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章