`

属性文件-保存个人设置

 
阅读更多

 

   Android中信息保存有三种方法:

1 SharePreferences    2 文件保存    3 数据库存储 

但现在个人还没找到 他们中每个有什么特殊的的用途,好像东西用他们每一个都能存储,也都能持久存储 

有高手略过欢迎给予指点,多谢。

 

 

 

/**
 * 应用程序配置类:用于保存用户相关信息及设置
 * 用属性文件来保存一些基本信息
 * 类设计为单例,Android,一UI线程为主,个人觉得不涉及到线程安全问题 
 */
@SuppressLint("NewApi")
public class AppConfig {

	private final static String APP_CONFIG = "config";
        public final static String CONF_LOAD_IMAGE = "perf_loadimage";

	 
	public final static String SAVE_IMAGE_PATH = "save_image_path";
	@SuppressLint("NewApi")
	public final static String DEFAULT_SAVE_IMAGE_PATH = Environment.getExternalStorageDirectory()+ File.separator+ "包名"+ File.separator;
			
	private Context mContext;
	private static AppConfig appConfig;

	public static AppConfig getAppConfig(Context context) {
		if (appConfig == null) {
			appConfig = new AppConfig();
			appConfig.mContext = context;
		}
		return appConfig;
	}

	/**
	 * 获取Preference设置
	 */
	public static SharedPreferences getSharedPreferences(Context context) {
		return PreferenceManager.getDefaultSharedPreferences(context);
	}

	/**
	 * 是否加载显示文章图片
	 */
	public static boolean isLoadImage(Context context) {
		return getSharedPreferences(context).getBoolean(CONF_LOAD_IMAGE, true);
	}
 
	public String get(String key) {
		Properties props = get();
		return (props != null) ? props.getProperty(key) : null;
	}

	public Properties get() {
		FileInputStream fis = null;
		Properties props = new Properties();
		try {
			// 读取files目录下的config
			// fis = activity.openFileInput(APP_CONFIG);

			// 读取app_config目录下的config
			File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
			fis = new FileInputStream(dirConf.getPath() + File.separator
					+ APP_CONFIG);
			Log.i("OSChina", dirConf.getPath() ) ; 
			props.load(fis);
		} catch (Exception e) {
		} finally {
			try {
				fis.close();
			} catch (Exception e) {
			}
		}
		return props;
	}

	private void setProps(Properties p) {
		FileOutputStream fos = null;
		try {
			// 把config建在files目录下
			// fos = activity.openFileOutput(APP_CONFIG, Context.MODE_PRIVATE);

			// 把config建在(自定义)app_config的目录下
			File dirConf = mContext.getDir(APP_CONFIG, Context.MODE_PRIVATE);
			File conf = new File(dirConf, APP_CONFIG);
			fos = new FileOutputStream(conf);

			p.store(fos, null);
			fos.flush();
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				fos.close();
			} catch (Exception e) {
			}
		}
	}

	public void set(Properties ps) {
		Properties props = get();
		props.putAll(ps);
		setProps(props);
	}

	public void set(String key, String value) {
		Properties props = get();
		props.setProperty(key, value);
		setProps(props);
	}

	public void remove(String... key) {
		Properties props = get();
		for (String k : key)
			props.remove(k);
		setProps(props);
	}
}

 

分享到:
评论

相关推荐

    Tagging-Taggie 基于标签管理的个人知识管理开源软件

    1. Taggie会自动获得当前文件的特定属性,例如文件创建日期、pdf的页数、已有关键词等,并根据这些信息为该文件创建一个UUID.lnk,如果开启了Distributed Link Tracking Client服务,在本地计算机你可以随意重命名...

    Access2003中文版应用基础教程part2

    1-3-4 保存数据库文件 1-3-5 备份数据库 1-4 关于数据库的二三事 1-4-1 不可不知1:更改Access的默认文件格式 1-4-2 不可不知2:转换旧版本的数据库 自我突破练习 第2章 建立数据库基本功 2-1 建立表 2-1-1 ...

    Access2003中文版应用基础教程part1

    1-3-4 保存数据库文件 1-3-5 备份数据库 1-4 关于数据库的二三事 1-4-1 不可不知1:更改Access的默认文件格式 1-4-2 不可不知2:转换旧版本的数据库 自我突破练习 第2章 建立数据库基本功 2-1 建立表 2-1-1 ...

    文件服务器安装与配置.docx

    例如,你可以创建文件屏蔽,不允许包含MP3扩展名的文件存储在文件服务器上的个人共享文件夹上。 存储报告 存储报告可用于帮助你确定磁盘使用的趋势以及数据分类的方式。你还可以监视尝试要保存未授权文件的一组所选...

    一个MyBatis的学习成果,仅作个人保存

    一个MyBatis的学习成果,仅作个人保存。包括:MyBatis配置文件的优化,CRUD操作,解决数据库和实体类属性名不符,关联表查询,调用存储过程,缓存机制。

    KODExplorer 芒果云-资源管理器

    ###ver2.61(2014.7.12) ... #### 1.... - Kodexplorer为千帆网络工作室开发的一款服务器文件管理程序... - 优化文件保存完美解决。编码自动识别转换。(字符串转义问题。1&#'[{'"+~%25\\\\ ////) - 文件编辑,添加收藏夹 -...

    linux.chm文档

    文件的特殊属性 - 使用 "+" 设置权限,使用 "-" 用于取消 chattr +a file1 只允许以追加方式读写文件 chattr +c file1 允许这个文件能被内核自动压缩/解压 chattr +d file1 在进行文件系统备份时,dump程序将忽略...

    桃源企业文件管理系统 v3.3

    2、文件版本管理:在线编辑的office文件或文本文件保存时或上传覆盖时均可自动产生多个备份文件,以便查看或进行还原之用。3、文件多属性:文件上传时可以设置所需要添加的多重属性,以便管理员查看、归档之用;前台...

    文件密码箱

    在工作和生活中,我们有许多重要的文件,如项目规划、会议记录、个人帐本、日记、照片、MP3音乐、通讯录、私人邮件甚至是一些可执行程序等等,我们希望这些文件不被轻易窥视、窃取、篡改、破坏、执行,并希望能对...

    桃源文件系统v3.3

    2、文件版本管理:在线编辑的office文件或文本文件保存时或上传覆盖时均可自动产生多个备份文件,以便查看或进行还原之用。 3、文件多属性:文件上传时可以设置所需要添加的多重属性,以便管理员查看、归档之用;...

    针式PinPKM-V201506(免费无使用限制)

    增加分类的属性,可设置颜色和设备 版本3.0.0 更新时间:不详 分类树操作的重大改进:支持“新增”“重命名”等右键功能、支持拖动进行分类移动和直接改变显示顺序 集成Google 桌面搜索:不仅仅是将搜索画面放到应用...

    PinPKM-V201525(官网发布的最后一个免费无使用限制版本)

    增加分类的属性,可设置颜色和设备 版本3.0.0 更新时间:不详 分类树操作的重大改进:支持“新增”“重命名”等右键功能、支持拖动进行分类移动和直接改变显示顺序 集成Google 桌面搜索:不仅仅是将搜索画面放到应用...

    java源码包---java 源码 大量 实例

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    桌面数据库-v2016.08.001

    《桌面数据库》,高效...2、新增“个人数据记录.exe”(在安装目录下),专门用来保存一些需要保密的数据,如各种密码等(既使数据文件被窃,对方也无法获得真实内容)。可单独运行。 3、“批量修改文件名”功能增强。

    个人信息管理系统-数据库设计.doc

    图一:系统组织结构简图 其中,个人信息是保存个人信息的地方;个人信息管理,通讯录管理,日程安排管理 和个人文件管理等业务。 2)业务分析 对于信息处理系统来说,划分系统边界很重要,即哪些功能由计算机来完成...

    VBA常用技巧

    72-1 设置Application对象的Visible属性 12 72-2 将窗口移出屏幕 12 72-3 设置工作簿作为加载宏运行 12 第6章 使用对话框 12 技巧73 使用Msgbox函数 12 73-1 显示简单的提示信息 12 73-2 定制个性化的消息框 12 73-3...

    新版Android开发教程.rar

    ----------------------------------- Android 编程基础 1 封面----------------------------------- Android 编程基础 2 开放手机联盟 --Open --Open --Open --Open Handset Handset Handset Handset Alliance ...

    VBA编程技巧大全

    72-1 设置Application对象的Visible属性 163 72-2 将窗口移出屏幕 164 72-3 设置工作簿作为加载宏运行 165 第6章 使用对话框 167 技巧73 使用Msgbox函数 167 73-1 显示简单的提示信息 167 73-2 定制个性化的消息框 ...

Global site tag (gtag.js) - Google Analytics