Android中数据存储之SharedPreferences

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * SharedPreferences是一种轻型的数据存储方式,它的本质是基于XML文件存储Key-Value键值对数据,<br/>
 * 通常用来存储一些简单的配置信息。其存储位置在/data/data/<包名>/shared_prefs目录下。<br/>
 * SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改是通过Editor对象实现。<br/>
 * SharedPreferences对象与SQLite数据库相比,免去了创建数据库、创建表、写SQL语句等操作,更加易用。<br/>
 * 但是SharedPreferences仅支持以下数据类型:<br/>
 * boolean<br/>
 * int<br/>
 * float<br/>
 * long<br/>
 * String<br/>
 * 但是无法进行条件查询等,所以不论SharedPreferences的数据存储操作是如何简单,<br/>
 * 它只能是存储方式的一种补充,而无法完全替代如SQLite数据库等其他数据存储方式。<br/>
 * 
 * @author wangzhu
 * @date 2014年11月22日 上午10:17:49
 */
public class SharedPreferencesUtils {
    /**
     * 将内容写入SharedPrefrences中
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param value
     *            值
     */
    public static void write(Context context, String fileName, String key,
            boolean value) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
    }

    /**
     * 读取SharedPreferences中标记所对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param defValue
     *            默认值
     * @return
     */
    public static boolean readBoolean(Context context, String fileName,
            String key, boolean defValue) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        return preferences.getBoolean(key, defValue);
    }

    /**
     * 将内容写入SharedPrefrences中
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param value
     *            值
     */
    public static void write(Context context, String fileName, String key,
            int value) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putInt(key, value);
        editor.commit();
    }

    /**
     * 读取SharedPreferences中标记所对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param defValue
     *            默认值
     * @return
     */
    public static int readInt(Context context, String fileName, String key,
            int defValue) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        return preferences.getInt(key, defValue);
    }

    /**
     * 将内容写入SharedPrefrences中
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param value
     *            值
     */
    public static void write(Context context, String fileName, String key,
            long value) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putLong(key, value);
        editor.commit();
    }

    /**
     * 读取SharedPreferences中标记所对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param defValue
     *            默认值
     * @return
     */
    public static long readLong(Context context, String fileName, String key,
            long defValue) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        return preferences.getLong(key, defValue);
    }

    /**
     * 将内容写入SharedPrefrences中
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param value
     *            值
     */
    public static void write(Context context, String fileName, String key,
            float value) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putFloat(key, value);
        editor.commit();
    }

    /**
     * 读取SharedPreferences中标记所对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param defValue
     *            默认值
     * @return
     */
    public static float readFloat(Context context, String fileName, String key,
            float defValue) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        return preferences.getFloat(key, defValue);
    }

    /**
     * 将内容写入SharedPrefrences中
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param value
     *            值
     */
    public static void write(Context context, String fileName, String key,
            String value) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.putString(key, value);
        editor.commit();
    }

    /**
     * 读取SharedPreferences中标记所对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     * @param defValue
     *            默认值
     * @return
     */
    public static String readString(Context context, String fileName,
            String key, String defValue) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        return preferences.getString(key, defValue);
    }

    /**
     * 删除SharedPreferences中Key对应的值
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     * @param key
     *            标记
     */
    public static void remove(Context context, String fileName, String key) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.remove(key);
        editor.commit();
    }

    /**
     * 清除SharedPreferences中对应文件的所有内容
     * 
     * @param context
     *            上下文对象
     * @param fileName
     *            文件名
     */
    public static void clear(Context context, String fileName) {
        SharedPreferences preferences = context.getSharedPreferences(fileName,
                Context.MODE_PRIVATE);
        Editor editor = preferences.edit();
        editor.clear();
        editor.commit();
    }
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。