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 }
调用
String sPath=GetConfigration.getPro("config/application.properties","cloudPath");
String score=GetConfigration.getPro("config/application.properties","syncScoreApi");