概述:我们在做项目时,经常需要从某个properties文件中读取properties文件中的值。现在我封装了一下方法,直接读取配置文件中的值。
代码如下所示:
1 /** 2 * Created by qinlinsen on 2017-07-03. 3 * 本例只要是读取任何一个.properties文件的值。如果配置文件没有的话都设有默认值,从而避免了NullPointException. 4 */ 5 public class KSConfigurationTest { 6 Properties properties; 7 /** 8 * 使用饱汉模式的双重锁模式创建一个实例 9 */ 10 private static KSConfigurationTest ksConfigurationTest; 11 //定义一个私有的构造方法 12 private KSConfigurationTest(){ 13 14 } 15 public static KSConfigurationTest getKsConfigurationTest(){ 16 if(null==ksConfigurationTest){ 17 synchronized (KSConfigurationTest.class){ 18 if(null==ksConfigurationTest){ 19 ksConfigurationTest=new KSConfigurationTest(); 20 } 21 } 22 } 23 return ksConfigurationTest; 24 } 25 26 /**该方法读取properties文件中的value值,在value不为空是返回value值,否则返回的是默认值。 27 * @param key properties文件中的key值 如文件中username=qinlinsen 其中username就是key 28 * @param resource properties文件所在的classpath中的路径 29 * @param defaultValue 所设的默认值 30 * @return 返回properties文件中的value. 31 */ 32 public String getProperty(String key,String resource,String defaultValue){ 33 //获取ksconfig.properties文件的属性值 34 properties=new Properties(); 35 InputStream in = KSConfigurationTest.getKsConfigurationTest().getClass().getClassLoader().getResourceAsStream(resource); 36 try { 37 properties.load(in); 38 } catch (IOException e) { 39 e.printStackTrace(); 40 } 41 String value = properties.getProperty(key); 42 if(value==null){ 43 return defaultValue; 44 } 45 return value; 46 } 47 //字符串的默认值为:""; 48 public String getProperty(String key,String resource){ 49 String value = getProperty(key, resource, ""); 50 return value; 51 } 52 public int getPropertyAsInt(String key,String resource,Integer defautValue){ 53 String stringValue = defautValue.toString(); 54 String value = getProperty(key, resource, stringValue); 55 return Integer.parseInt(value); 56 } 57 //设默认值为1 58 public int getPropertyAsInt(String key,String resource){ 59 int value = getPropertyAsInt(key, resource, 1); 60 return value; 61 } 62 public static void main(String[] args) {
//这是测试代码 63 String key = KSConfiguration.getInstance().getProperty("app_id"); 64 System.out.println(key); 65 System.out.println("key="+key); 66 System.out.println(Boolean.valueOf("people")); 67 System.out.println(Boolean.valueOf("TRu")); 68 String app_id = KSConfigurationTest.getKsConfigurationTest().getProperty("app_id", "ksconfig.properties"); 69 System.out.println("app_id="+app_id); 70 int parsec = KSConfigurationTest.getKsConfigurationTest().getPropertyAsInt("parsec", "helloworld.properties"); 71 System.out.println("parsec="+parsec); 72 String username = KSConfigurationTest.getKsConfigurationTest().getProperty("username", "spring/test.properties"); 73 System.out.println("username="+username); 74 } 75 }