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();

    }

}

 

你可能感兴趣的:(Android中数据存储之SharedPreferences)