概述:我们在做项目时,经常需要从某个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. SqlServer2008/2005数据库日志收缩

    1.SQL2008数据库USE [master]GOALTER DATABASE 数据库名称 SET RECOVERY SIMPLE WITH NO_WAITALTER DATABASE 数据库名称 ...

  2. php-5.6.26源代码 - opcode处理器的注入

    .初始化 opcode处理器列表 // main实现在文件“php-5.6.26\sapi\cgi\cgi_main.c” int main(int argc, char *argv[]) { if ...

  3. Wannafly挑战赛4. B

    Wannafly挑战赛4. B 题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次+ ...

  4. 把SmartForm转换成PDF

    摘要:将SmartForm转换为PDF的过程包括3个简单步骤. 调用智能窗体,然后返回OTF数据. 使用“转换”功能模块将OTF数据转换为所需格式. 下载文件 呈现宏“code”时出错:为参数“lan ...

  5. java线程安全总结 - 1 (转载)

    原文地址:http://www.jameswxx.com/java/java%E7%BA%BF%E7%A8%8B%E5%AE%89%E5%85%A8%E6%80%BB%E7%BB%93/ 最近想将ja ...

  6. CSS3---混合模式

    概念 CSS3混合模式(  CSS Blend Modes  )是CSS3新增的一个魔法特性,可以允许多个背景或多个元素进行混合,类似于Photoshop的图层混合模式 CSS3混合模式属性一览 ba ...

  7. Android stadio 插件推荐--ok gradle

    今天发现了一个好玩的插件,对于想要知道依赖怎么写的同学很有帮助. 写这篇文章的意义在于,以后我忘了的话,可以自己在博客中找到. 上地址: https://github.com/scana/ok-gra ...

  8. 安测云验证有CTA问题

    背景: 现在所有的app 都需要通过工信部的审核.用户不同意之前,不能联网. 那么,我怎么知道自己的应用有没有联网呢?那么多sdk ,那么多代码?我怎么测试呢? 哈哈,我们测试给的方法真的很管用. l ...

  9. idea无法新建maven项目

    之前用的都是eclipse,自从4月底入职新公司后,接触到了idea. 然后自己的电脑上也安装了idea,不过一直都没用,直到昨天打算开起来使用一下. 之后就是想新建一个maven项目,发现死活也新建 ...

  10. ElasticSearch学习笔记(五)-- 排序、分页与遍历

    1. 相关性算分 这样能够查询到不同分片上的文档的准确算分,默认分片为5 2. sorting-doc-values-fielddata 3. 分页与遍历