JR 精品文章 - 代码可移植之配置文件读取
AD: jr (at) javaresearch.org


首页 | 动态 | 文章 | FAQ  | 新闻 | 下载 | 代码 | 工作 | 调查 | 术语 | 站点 | 图书 | 论坛 | 帮助 | 全部  

TOP | 交流 | 软件 | 专栏 | 开源 | 译/著 | 源码 | API  | 推荐 | FTP  | 积分 | 统计 | 搜索 | Blog | 我们  
首页 » 研究文集 » J2SE综合 搜索标题相关文章 搜索标题相关文章    评论此文章 发表评论     开始监控此文章 开始监控   加入收藏夹  加入收藏夹
代码可移植之配置文件读取
xiaoyuer 原创   更新:2007-12-26 13:29:39  版本: 1.0   

  为了代码的可移植,我们在记取配置文件时,也要做一个小小的处理,我把我的习惯做法和大家分享一下:
   首我把配置文件都放到src下的conf文件夹下:
   
   下面把代码也粘出来给大家看看:
package com.ce.configuration;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

import org.apache.log4j.Logger;

/**
 * 获取配置文件
 * 
 * @author xiaoyuer
 * 
 */
public final  class ConfigUtil {
    private final boolean DEBUG=false;//实现条件编译
    private final Logger logger=Logger.getLogger(ConfigUtil.class);
    private final Properties prop = new Properties();
    private String configfile;
    /**
     * 
     * @param configfilename classpath中conf文件夹下的文件名
     */
    public ConfigUtil(String configfilename) {
        this.configfile = configfilename;
        LoadConfigFile();
        if(DEBUG)
        {
            System.out.println("正在读取配置文件:"+this.configfile);
        }
    }
    /**
     * 获取Properties
     * @return Properties
     */
    public Properties getProperties()
    {
        return this.prop;
    }
    /**
     * 加载配置文件
     */
    private void LoadConfigFile() {
        InputStream is=this.getClass().getClassLoader().getResourceAsStream("conf/" + this.configfile);
        if (null!=is) {
            try {
                prop.load(is);
            } catch (IOException e) {
                e.printStackTrace(System.err);
                logger.error("加载配置文件出错:" + e.getMessage());
            } catch (Exception ex) {
                ex.printStackTrace(System.err);
                logger.error("加载配置文件出错:" + ex.getMessage());
            }
        } else {
            logger.error("无法找到配置文件:" + this.configfile);
        }
    }

    /**
     * 获取属性值
     * 
     * @param key 键
     * @return String 值
     */
    public String getProperty(String key) {
        String value;
        if (prop.containsKey(key)) {
            value = (String) prop.get(key);
        } else {
            value = "";
            logger.warn("在配置文件" + this.configfile + "中无法找到属性:" + key);
        }
        return value;
    }
}

注意:不要使用ClassLoader.getSystemResourceAsStream("");来获取资源,因为这样经常会找不到.
同时我们可以把资源放到JAR里,方便使用,可以放到classpath中。
是否要把配置文件放到conf文件夹是,个人的习惯问题,你也可以放到src目录下。
最关键是要用一个实例来获取资源(在我的例子中用this)。

版权声明   给作者写信
本篇文章对您是否有帮助?  投票:         投票结果:     16       1
作者其它文章: 作者全部文章

这个文章共有 0 条评论
主题: 提高写文件的性能的一个比较简单的方法 上一篇文章
返回文章列表 返回〔J2SE综合〕
下一篇文章 主题: 新整理的 Unicode GB2312 字符映射表


文字广告链接
        自主、快速定制基于JAVA的B/S业务系统          重量级企业在线自定义WEB报表平台
        Excel制表、零代码发布、打印、图表结合——快逸报表,免费、稳定、功能强大的java工具
        技术圈: 关于Java、dotNet、PHP、Ruby、奇客、Web2.0等更多资讯博客精选文章

关于 JR  |  版权声明  |  联系我们 

©2002-2006 JR 版权所有 沪ICP备05019622号