`
JaNer
  • 浏览: 45043 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

新鲜出炉的操作java属性文件工具类

阅读更多
写在前面:
在Java开发中,我们经常会用到属性配置文件。比如,我们需要一个全局变量,这个变量又有可能经常变化,如果我们把它定义在程序中的话,那修改这个变量我们就得重新编译发布,尤其是当程序已经部署运行的话,这将带来很大麻烦。其实属性配置文件的应用场景还有很多,在java开发中可以说是无处不在。下面偶就给出一个操作属性资源文件的工具类。通过这个工具类,我们可以实现对属性配置文件的增删查的操作。
package com.yinhai.paysystem.hospital.base.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.Properties;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * @name PropertiesUtil
 * @title 操作属性文件工具类
 * @desc  
 * @author 熊春
 * @version 两定支付系统-V5.0 2008-06-16
*/
public class PropertiesUtil {
	private static Log log = LogFactory.getLog(PropertiesUtil.class);//日志输出对象
	private static String filePath;
	private Properties objProperties; //属性对象
	
	/**
	 * @name PropertiesUtil
	 * @title 构造函数
	 * @desc 加载属性资源文件
	 * @param String,boolean
	 * @return 
	 * @throws Exception 
	 */
	public PropertiesUtil(String filePath) throws Exception {
		this.filePath = filePath;
		File file = new File(filePath);
		FileInputStream inStream = new FileInputStream(file);
		try{
			objProperties = new Properties();
			objProperties.load(inStream);
		}
		catch(FileNotFoundException e){
			log.error("未找到属性资源文件!");
			e.printStackTrace();
			throw e;
		}
		catch(Exception e){
			log.error("读取属性资源文件发生未知错误!");
			e.printStackTrace();
			throw e;
		}finally{
			inStream.close();
		}
	}
	
	/**
	 * @name savefile
	 * @title 持久化属性文件
	 * @desc 使用setValue()方法后,必须调用此方法才能将属性持久化到存储文件中
	 * @param String, String
	 * @return 
	 * @throws Exception
	 */
	public void savefile(String desc) throws Exception{
		FileOutputStream outStream = null;
		try{
			File file = new File(filePath);
			outStream = new FileOutputStream(file);
			objProperties.store(outStream, desc);//保存属性文件
		}catch(Exception e){
			log.error("保存属性文件出错.");
			e.printStackTrace();
			throw e;
		}finally{
			outStream.close();
		}
		
	}
	
	/**
	 * @name getVlue
	 * @title 获取属性值
	 * @desc 指定Key值,获取value
	 * @param String
	 * @return String
	 */
	public String getValue(String key){
		return objProperties.getProperty(key);
	}
	
	/**
	 * @name getVlue
	 * @title 获取属性值,支持缺省设置
	 * @desc 重载getValue()方法;指定Key值,获取value并支持缺省值
	 * @param String
	 * @return String
	 */
	public String getValue(String key, String defaultValue){
		return objProperties.getProperty(key, defaultValue);
	}
	
	/**
	 * @name removeVlue
	 * @title 删除属性
	 * @desc 根据Key,删除属性
	 * @param String
	 * @return 
	 */
	public void removeValue(String key){
		objProperties.remove(key);
	}
	
	/**
	 * @name setValue
	 * @title 设置属性
	 * @desc 
	 * @param String,String
	 * @return 
	 */
	public void setValue(String key, String value){
		objProperties.setProperty(key, value);
	}
	
	/**
	 * @name printAllVlue
	 * @title 打印所有属性值
	 * @desc 
	 * @param 
	 * @return 
	 */
	public void printAllVlue(){
		 objProperties.list(System.out);
	}
}
分享到:
评论

相关推荐

    想检测下自己的java水平吗?最基本的java测试题新鲜出炉

    这个编译器将.java文件转换为.class文件,这些文件可以在JVM上运行。在给定的测试题中,选项A是正确的。 【Java应用程序的入口点】 Java应用程序的入口方法是main方法,其定义为`public static void main(String[]...

    TotoroVM 原型新鲜出炉

    【标题】"TotoroVM 原型新鲜出炉" 暗示了一个新的虚拟机(VM)项目,名为"TotoroVM",它可能是由开发者或团队刚刚完成的初步设计或原型。虚拟机是一种软件实现,它可以模拟硬件平台,使得操作系统和其他软件可以在其...

    新出炉的Java爬虫小系统

    Java爬虫小系统是一个利用Java编程语言开发的用于自动化数据抓取和处理的应用。这个系统设计的核心目标是高效地从互联网上抓取信息,并对抓取到的数据进行预处理,以便进一步分析或存储。在Java中实现爬虫,通常会...

    2021金三银四最新出炉《Java中高级面试题合集》V1.0

    由于在提供的文件信息中,实际的知识点部分是断断续续的,我将尝试把其中的断句补齐,并详细解释其中的Java面试题知识点。 ### 知识点一:JDK与JRE的区别 JDK(Java Development Kit)是Java开发工具包,它包含了...

    新鲜出炉校园招聘技术类笔试题

    【标题】"新鲜出炉校园招聘技术类笔试题"所涵盖的知识点主要集中在计算机科学和技术领域,这通常是针对大学毕业生或在校生的招聘考试内容。这类试题旨在评估应聘者的编程能力、算法理解、软件工程基础、操作系统知识...

    DbVisualizer Pro10.0.11破解文件新鲜出炉

    jar 包 授权文件 亲测可用;dbvisualizer 10.0.10-11都可用

    新鲜出炉校园招聘2015届技术类笔试题

    2015届中国顶级IT互联网公司校招笔试题,包括届阿里巴巴校招测试开发工程师在线笔试题,小米校招技术类笔试题,360校园招聘届技术类笔试题,阿里巴巴研发工程师,腾讯校园招聘技术类研发笔试题,美团校园招聘研发...

    新出炉的Java版人力资料管理系统

    总的来说,【新出炉的Java版人力资料管理系统】结合了Java的技术优势,提供了全面的人力资源管理功能,是企业提升管理水平的好帮手。如果你需要获取系统jar包,可以通过添加指定的QQ号码并说明原因进行联系。感谢你...

    『新鲜出炉,深入浅出java百度云(csdn)————程序.pdf

    4. **并发工具类**: - `synchronized`关键字提供了同步机制,用于控制对共享资源的访问。它可以作用于实例方法、类方法、对象和类,有不同的锁效果。 - `Lock`接口提供了更细粒度的锁控制,如`ReentrantLock`,它...

    【2015腾讯校园招聘】新鲜出炉腾讯产品策划运营类笔经(带题目).pdf

    【2015腾讯校园招聘】新鲜出炉腾讯产品策划运营类笔经(带题目).pdf

    2018新鲜出炉的python二级试题

    2018年的新鲜出炉的Python二级试题,无疑是对考生们掌握Python基础知识和编程能力的一次重要检验。 Python作为一门高级编程语言,以其简洁易读的语法、强大的库支持以及广泛的应用领域深受喜爱。在计算机二级考试中...

    新鲜出炉:Ubuntu12.zip

    “新鲜出炉:Ubuntu12.10 菜鸟使用手册(一)”这份PDF文档,应该是为刚接触Ubuntu的新手准备的指南。它可能涵盖了安装Ubuntu、设置网络、使用Unity界面、管理软件、解决常见问题等方面的内容,旨在帮助初学者快速...

    小红书APP首页测试用例,新鲜出炉

    小红书APP首页测试用例,新鲜出炉

    Java程序员面试宝典2011最新出炉

    《Java程序员面试宝典2011最新出炉》是一份针对Java软件工程师的笔试与面试指南,涵盖了广泛的Java基础知识和面试常考问题。以下是对该资料中提及的一些关键知识点的详细解析: ### Java基础部分 #### 1\. 多个类...

    Java程序员面试宝典2012最新出炉

    ### Java程序员面试宝典2012最新出炉 #### Java基础部分 1. **一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?** - 在一个`.java`源文件中确实可以定义多个类,但其中只能有一个公共类...

    电弧炉(矿热炉)电极插入深度影响因素与判断方法+电炉平衡操作和出炉操作技术及控制措施.pdf

    电弧炉(矿热炉)电极插入深度影响因素与判断方法+电炉平衡操作和出炉操作技术及控制措施 电弧炉(矿热炉)电极插入深度是指电极在炉膛中的位置,是判断炉况的重要特征之一。电极插入深度的变化会对炉况产生重要...

    新鲜出炉的2018中科院分区期刊目录

    新鲜出炉的2018中科院分区期刊目录。sci,一区,二区,三区所有期刊分类分区表,方便查看

    Arcgis engine 9.3 中文环境 新鲜出炉

    Arcgis engine 9.3 中文环境 新鲜出炉 用AE9.3开发的程序,由于客户要求中文,我用了许多AE 中的很多bean(比如toolbarbean),发布后是英文的。 于是百度,Google,搜AE9.3 中文环境,找了一下午都没有找到。 ...

    RPG 游戏代码-新鲜出炉

    在“RPG游戏代码-新鲜出炉”这个项目中,虽然没有提供资源文件,但我们可以从代码层面深入理解RPG游戏的构建原理。 首先,RPG游戏的核心部分通常包括以下几个方面: 1. **角色系统**:角色是RPG游戏的基石,包括...

Global site tag (gtag.js) - Google Analytics