概述:我们在做项目时,经常需要从某个properties文件中读取properties文件中的值。现在我封装了一下方法,直接读取配置文件中的值。

代码如下所示:

 /**
* Created by qinlinsen on 2017-07-03.
* 本例只要是读取任何一个.properties文件的值。如果配置文件没有的话都设有默认值,从而避免了NullPointException.
*/
public class KSConfigurationTest {
Properties properties;
/**
* 使用饱汉模式的双重锁模式创建一个实例
*/
private static KSConfigurationTest ksConfigurationTest;
//定义一个私有的构造方法
private KSConfigurationTest(){ }
public static KSConfigurationTest getKsConfigurationTest(){
if(null==ksConfigurationTest){
synchronized (KSConfigurationTest.class){
if(null==ksConfigurationTest){
ksConfigurationTest=new KSConfigurationTest();
}
}
}
return ksConfigurationTest;
} /**该方法读取properties文件中的value值,在value不为空是返回value值,否则返回的是默认值。
* @param key properties文件中的key值 如文件中username=qinlinsen 其中username就是key
* @param resource properties文件所在的classpath中的路径
* @param defaultValue 所设的默认值
* @return 返回properties文件中的value.
*/
public String getProperty(String key,String resource,String defaultValue){
//获取ksconfig.properties文件的属性值
properties=new Properties();
InputStream in = KSConfigurationTest.getKsConfigurationTest().getClass().getClassLoader().getResourceAsStream(resource);
try {
properties.load(in);
} catch (IOException e) {
e.printStackTrace();
}
String value = properties.getProperty(key);
if(value==null){
return defaultValue;
}
return value;
}
//字符串的默认值为:"";
public String getProperty(String key,String resource){
String value = getProperty(key, resource, "");
return value;
}
public int getPropertyAsInt(String key,String resource,Integer defautValue){
String stringValue = defautValue.toString();
String value = getProperty(key, resource, stringValue);
return Integer.parseInt(value);
}
//设默认值为1
public int getPropertyAsInt(String key,String resource){
int value = getPropertyAsInt(key, resource, );
return value;
}
public static void main(String[] args) {
        //这是测试代码
String key = KSConfiguration.getInstance().getProperty("app_id");
System.out.println(key);
System.out.println("key="+key);
System.out.println(Boolean.valueOf("people"));
System.out.println(Boolean.valueOf("TRu"));
String app_id = KSConfigurationTest.getKsConfigurationTest().getProperty("app_id", "ksconfig.properties");
System.out.println("app_id="+app_id);
int parsec = KSConfigurationTest.getKsConfigurationTest().getPropertyAsInt("parsec", "helloworld.properties");
System.out.println("parsec="+parsec);
String username = KSConfigurationTest.getKsConfigurationTest().getProperty("username", "spring/test.properties");
System.out.println("username="+username);
}
}

封装的方法--读取任何路径下的properties文件中的值的更多相关文章

  1. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  2. C++读取特定路径下文件目录及文件名称

    这几天在弄一个项目,需要读取给定路径下的所有文件夹名称或所有带后缀的文件名. 查了下C++的资料,发现有很多方法,这里总结其中的一种,其他用法类似. 主要用到了以下几个头文件(类):io.h, fst ...

  3. 转载:C++读取特定路径下文件目录及文件名称

    转载地址:http://www.cnblogs.com/tgyf/p/3839894.html void getAllFiles( string path, vector<string>& ...

  4. Python3在指定路径下递归定位文件中出现的字符串

    [本文出自天外归云的博客园] 脚本功能:在指定的路径下递归搜索,找出指定字符串在文件中出现的位置(行信息). 用到的python特性: 1. PEP 318 -- Decorators for Fun ...

  5. java读取项目路径下的中文文件乱码问题

    出现乱码错误: 处理方案: 对文件路径中存在中文的,都要进行URLDecoder.decode(path,"UTF-8")编码转换 wordContent = URLEncoder ...

  6. src/main/Java路径下的properties文件丢失

    在pom中加入代码: <build> <resources> <resource> <directory>src/main/java</direc ...

  7. java读取项目根路径下和任意磁盘位置下的properties文件

    1.读取项目根路径下的properties文件比较简单也是比较常见的一种操作. 具体代码如下: package com.xuanen.util; import java.util.Properties ...

  8. matlab读取指定路径下的图像

    利用matlab读取指定路径下的图像 %% 读入指定路径imgFolder下的图像imgName imgFolder = 'F:\博\快盘\图像+数据\images\文章实验图'; %指定路径 img ...

  9. Java取得一个对象里所有get方法和set方法, 读取某个类下所有变量的名称

    所有get方法和set方法public void getMethod(Object obj){ Class clazz=obj.getClass();//获得实体类名 Field[] fields = ...

随机推荐

  1. Optimization Tipss for Multi Vendor eCommerce Software to drive, retain more sales

    1. Make the Registration & Listing simple  - Only if you keep the registration process and produ ...

  2. 003---wsgi和wsgiref模块

    WSGI: 全称:Web Server Gatway Interface ,web服务网关接口,独立的,与django无关,他们俩只是遵循一个约定,是一个协议. wsgiref模块: 实现了WSGI协 ...

  3. wlr快捷键

    ref:http://www.cnblogs.com/zhangyang/archive/2011/07/22/2113856.html   Windows Live Writer提供了许多方便的快捷 ...

  4. python sys模块和序列化模块

    sys模块是与python解释器交互的一个接口: sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit( ...

  5. RandomAecessFile open failed: EISDIR (Is a directory)

    今天下午搞断点续传,下载文件的时候,弄了一下,我把下载的文件命名为plug.jar.后来老是报错: open failed: EISDIR (Is a directory) 我烦了,两个小时啊,我操. ...

  6. 4.bootstrap的form表单的form-group和form-control的区别与联系

    1. form-group一般用于div form-control一般用于置于div中的标签元素,为了让控件在各种表单风格中样式不出错,需要添加类名“form-control”,如: <form ...

  7. Java学习关于时间操作的应用类--Date类、Calendar类及其子类

    Date类 Date类封装了当期时间和日期.与Java1.0定义的原始版的Date类相比,Date类发生了本质的变化.在Java1.1发布时,原始版Date类定义的许多功能被移进Calendar类和D ...

  8. linux 检测进程是否存在

    1. 直接遍历/proc目录 int find_pid_by_name( char* pidname, pid_t *pidlist) { #define READ_BUF_SIZE 256 DIR ...

  9. codility

    // you can also use imports, for example: // import java.util.*; // you can write to stdout for debu ...

  10. DOS程序员手册(十五)

    837页 writeln('TRACING Current Buffer==='); holdup; bcbtrc(cvtbase^.curbfr); writeln; holdup ; writel ...