写在前面:
在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程序员面试宝典2011最新出炉Java程序员面试宝典2011最新出炉Java程序员面试宝典2011最新出炉Java程序员面试宝典2011最新出炉Java程序员面试宝典2011最新出炉Java程序员面试宝典2011最新出炉Java程序员面试宝典...
新鲜出炉校园招聘技术类笔试题 新鲜出炉校园招聘技术类笔试题
『新鲜出炉,深入浅出java百度云(csdn)————程序
2021年1月浙江高考英语续写题源出处和相关视频新鲜出炉!.pdf2021年1月浙江高考英语续写题源出处和相关视频新鲜出炉!.pdf2021年1月浙江高考英语续写题源出处和相关视频新鲜出炉!.pdf2021年1月浙江高考英语续写题源...
2021金三银四最新出炉《Java中高级面试题合集》V1.0
新鲜出炉的java10欢迎下载新鲜出炉的java10欢迎下载新鲜出炉的java10欢迎下载
面向初学者的java测试题,附带答案和考点,同时也适合即将参加java竞赛的人
2015届中国顶级IT互联网公司校招笔试题,包括届阿里巴巴校招测试开发工程师在线笔试题,小米校招技术类笔试题,360校园招聘届技术类笔试题,阿里巴巴研发工程师,腾讯校园招聘技术类研发笔试题,美团校园招聘研发...
新鲜出炉:Ubuntu12
jar 包 授权文件 亲测可用;dbvisualizer 10.0.10-11都可用
【2015腾讯校园招聘】新鲜出炉腾讯产品策划运营类笔经(带题目).pdf
以前整理的一个Java爬虫小系统。 处理了一些字符以及简单的其他应用。
上海科目一考试总结,新鲜出炉
面条十大创意吃法新鲜出炉.doc
swift官方文档中文版(新鲜出炉)
新鲜出炉的2018中科院分区期刊目录。sci,一区,二区,三区所有期刊分类分区表,方便查看
Oracle产品信息管理数据中心新鲜出炉.pdf
win8新鲜出炉的精品好应用.docx
Arcgis engine 9.3 中文环境 新鲜出炉 用AE9.3开发的程序,由于客户要求中文,我用了许多AE 中的很多bean(比如toolbarbean),发布后是英文的。 于是百度,Google,搜AE9.3 中文环境,找了一下午都没有找到。 ...
2015年新鲜出炉SCI期刊(剔除期刊)