由于Java中读取配置文件的代码比较固定,所以可以将读取配置文件的那部分功能单独作为一个类,以后可以复用。为了能够达到复用的目的,不能由配置文件中每一个属性生成一个函数去读取,我们需要一种通用的方法读取属性,即由用户给出属性名字(作为方法参数)来获取对应属性的Value值。下面是示例代码:

 import java.io.*;
import java.util.*; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; public class Configure { // private static final Log log = LogFactory.getLog(ServerConfig.class);
private static Properties config = null; public Configure() {
config = new Properties();
} public Configure(String filePath) {
config = new Properties();
try {
ClassLoader CL = this.getClass().getClassLoader();
InputStream in;
if (CL != null) {
in = CL.getResourceAsStream(filePath);
}else {
in = ClassLoader.getSystemResourceAsStream(filePath);
}
config.load(in);
// in.close();
} catch (FileNotFoundException e) {
// log.error("服务器配置文件没有找到");
System.out.println("服务器配置文件没有找到");
} catch (Exception e) {
// log.error("服务器配置信息读取错误");
System.out.println("服务器配置信息读取错误");
}
} public String getValue(String key) {
if (config.containsKey(key)) {
String value = config.getProperty(key);
return value;
}else {
return "";
}
} public int getValueInt(String key) {
String value = getValue(key);
int valueInt = 0;
try {
valueInt = Integer.parseInt(value);
} catch (NumberFormatException e) {
e.printStackTrace();
return valueInt;
}
return valueInt;
}
}

单元测试:

    @Test
public void configureTest() {
Configure config = new Configure("server.properties");
int port = config.getValueInt("server.port");
String ip = config.getValue("server.ip");
String sp = config.getValue("message.split");
System.out.println("port: " + port);
System.out.println("ip: " + ip);
System.out.println("sp: " + sp);
}

配置文件如下:

server.port =30000
server.ip=127.0.0.1
server.backgroundRun = false
MAX_ERROR_NUM=1000
message.split=\#
message.over=31
message.serverGetMessage=Yes
message.wrong=No
message.serverGetOver=over
message.serverFindSIM=find
message.serverNotFindSIM=NotFind

Java中读取.properties配置文件的通用类的更多相关文章

  1. 如何在java类中读取Properties配置文件

    在com.example包下有一个test.properties文件和测试类PropertyReadTest.java. test.properties 文件内容: author=zeige  tea ...

  2. 五种方式让你在java中读取properties文件内容不再是难题

    一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC ...

  3. Java中读取 .properties 和 .xml 文件

    配置文件内容获取 总结内容 1. Java中为什么要使用配置文件 2. Java中常用的配置文件类型有哪些以及它们的特点 Properties配置文件 XML配置文件 总结 总结内容 1. Java中 ...

  4. Java中读取properties资源文件

    一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String ...

  5. java 如何读取 properties 配置文件

  6. javaweb 读取properties配置文件参数

    场景1:在servlet中读取properties配置文件参数 protected void doGet(HttpServletRequest request, HttpServletResponse ...

  7. Java读取properties配置文件工具类

    1.   PropertyUtils.java package javax.utils; import java.io.InputStream; import java.util.Properties ...

  8. java读取properties配置文件总结

    java读取properties配置文件总结 在日常项目开发和学习中,我们不免会经常用到.propeties配置文件,例如数据库c3p0连接池的配置等.而我们经常读取配置文件的方法有以下两种: (1) ...

  9. java读取properties配置文件信息

    一.Java Properties类 Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置 ...

随机推荐

  1. android中配置文件property的用途以及使用<转>

    1.首先在源代码根目录(src下)下创建一个名为netconfig.properties的文件(也可以在其他目录下). 2.打开netconfig.properties文件,在该文件中添加下列代码. ...

  2. springMVC学习记录3-拦截器和文件上传

    拦截器和文件上传算是springmvc中比较高级一点的内容了吧,让我们一起看一下. 下面先说说拦截器.拦截器和过滤器有点像,都可以在请求被处理之前和请求被处理之到做一些额外的操作. 1. 实现Hand ...

  3. 作业:WordCount--实现字符数,单词数,行数的统计

    1. Gitee 地址 https://gitee.com/fyxiaobai/wordcount 2. PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning ...

  4. JS中创建对象的方法及json

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  5. ID3、C4.5和cart算法比较(转)

    转自:https://www.zhihu.com/question/27205203

  6. oracle系统视图字段说明

    oracle系统表v$session.v$sql表的列字段说明‍ 在本视图中,每一个连接到数据库实例中的 session都拥有一条记录.包括用户 session及后台进程如 DBWR, LGWR, a ...

  7. switch_to_frame,切换frame框架

    页面包含frame/iframe标签,需要先切换到该frame标签,再去定位属于这个frame的元素.   如果要再去定位其他frame的元素,需要回到该frame的上级,定位到要选择的frame,不 ...

  8. hdoj1087 (DP--LIS)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1087 思路:这题很简单了,纯LIS的解法,没有一点变形,由于数据小,使用O(n^2)LIS解法就足够了 ...

  9. TensorFlow—CNN—CIFAR数据集分类

  10. day5:vcp考试

    Q81. An administrator needs to recover disk space on a previously-used thin provisioned virtual disk ...