java项目中读取配置文件

一些基本的方法

 1 import java.io.FileInputStream;
 2 import java.io.FileNotFoundException;
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 import java.util.Properties;
 6 
 7 
 8 public class GetConfigration {
 9 
10 
11     private static Properties prop;
12     
13     public static void load(String path){
14         //这里的path是项目文件的绝对路径
15         //先获取项目绝对路径:Thread.currentThread().getContextClassLoader().getResource("").getPath();
16         prop= new Properties();// 属性集合对象   
17         FileInputStream fis;  
18         try {  
19             //System.out.println(path);
20             fis = new FileInputStream(path);
21             prop.load(fis);
22             fis.close();// 关闭流  
23         } catch (FileNotFoundException e) {  
24             e.printStackTrace();  
25         } catch (IOException e) {  
26             e.printStackTrace();  
27         } 
28     }
29     
30     //参数为要修改的文件路径  以及要修改的属性名和属性值  
31     public static Boolean updatePro(String path,String key,String value){
32         if(prop==null){
33             load(path);
34             System.out.println("修改前重新加载一遍");
35         }
36         System.out.println("获取添加或修改前的属性值:"+key+"=" + prop.getProperty(key));
37         prop.setProperty(key, value);   
38         // 文件输出流   
39         try {  
40             FileOutputStream fos = new FileOutputStream(path);   
41             // 将Properties集合保存到流中   
42             prop.store(fos, "Copyright (c) Boxcode Studio");   
43             fos.close();// 关闭流   
44         } catch (FileNotFoundException e) {  
45             // TODO Auto-generated catch block  
46             e.printStackTrace();  
47             return false;  
48         } catch (IOException e) {  
49             // TODO Auto-generated catch block  
50             e.printStackTrace();  
51             return false;  
52         }  
53         System.out.println("获取添加或修改后的属性值:"+key+"=" + prop.getProperty(key));
54         return true;  
55     }  
56     
57   //参数为要修改的文件路径  以及要修改的属性名和属性值  
58     public static String getPro(String path,String key){  
59         String absolutePath=Thread.currentThread().getContextClassLoader().getResource("").getPath();
60         if(prop==null){
61             load(absolutePath+path);
62             //System.out.println("重新加载一遍");
63         }
64         FileInputStream fis;  
65         try {  
66             fis = new FileInputStream(absolutePath+path);  
67             prop.load(fis);// 将属性文件流装载到Properties对象中   
68             fis.close();// 关闭流  
69         } catch (FileNotFoundException e) {  
70             e.printStackTrace();  
71         } catch (IOException e) {  
72             e.printStackTrace();  
73         }  
74        // System.out.println("查询到的"+key+"的值:"+prop.getProperty(key));
75         return prop.getProperty(key);  
76     }  
77 
78 
79 }
View Code

 

调用

String sPath=GetConfigration.getPro("config/application.properties","cloudPath");
String score=GetConfigration.getPro("config/application.properties","syncScoreApi");

posted @ 2018-09-13 10:51  水中的空气  阅读(1569)  评论(0编辑  收藏  举报