今天遇到一个项目在部署时,代码里的接口地址需要变化,特地写了一个工具类可以获取到项目下properties文件里的信息,在此记录一下
文件 yjs.properties 的路径在项目的 \WEB-INF\classes 目录下 ,如图
这是工具类
package com.vingsoft.yjs.util;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
/**
* 加载properties配置文件工具类
* @author MrTang
*
*/
public class PropertiesUtil {
/**
* 根据properties文件名和key值获取value
* @param fileName
* @param key
* @return
*/
public static String getPropertiesValue(String fileName,String key){
Properties p = new Properties();
String value = null;
try {
InputStream in = PropertiesUtil.class.getResourceAsStream(fileName);
p.load(in);
in.close();
if(p.containsKey(key)){
value = p.getProperty(key);
}
} catch (Exception e) {
System.out.println("根据properties文件名和key值获取value:失败");
e.printStackTrace();
}
return value;
}
/**
* 根据properties文件名和key值获取value(读取中文)
* @param fileName
* @param key
* @return
*/
public static String getPropertiesValue2(String fileName,String key){
Properties p = new Properties();
String value = null;
try {
InputStreamReader in = new InputStreamReader(PropertiesUtil.class.getResourceAsStream(fileName), "GBK");
p.load(in);
in.close();
if(p.containsKey(key)){
value = p.getProperty(key);
}
} catch (Exception e) {
System.out.println("根据properties文件名和key值获取value:失败");
e.printStackTrace();
}
return value;
}
public static void main(String[] args) {
String v = getPropertiesValue("/yjs.properties", "emswsdl");
System.out.println(v);
}
}