所需工具类:org.springframework.core-3.1.1.RELEASE.jar
代码:
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.DefaultPropertiesPersister;
import org.springframework.util.PropertiesPersister;
/**
* Properties文件读取工具类.
*
* @author calvin
*/
public class PropertiesUtils {
private static final String DEFAULT_ENCODING = "UTF-8";
private static PropertiesPersister propertiesPersister = new DefaultPropertiesPersister();
private static ResourceLoader resourceLoader = new DefaultResourceLoader();
/**
* 载入多个properties文件, 相同的属性在最后载入的文件中的值将会覆盖之前的载入. 文件路径使用Spring Resource格式,
* 文件编码使用UTF-8.
*
* @see org.springframework.beans.factory.config.PropertyPlaceholderConfigurer
*/
public static Properties loadProperties(String... resourcesPaths)
throws IOException {
Properties props = new Properties();
for (String location : resourcesPaths) {
InputStream is = null;
try {
Resource resource = resourceLoader.getResource(location);
is = resource.getInputStream();
propertiesPersister.load(props, new InputStreamReader(is,
DEFAULT_ENCODING));
} catch (IOException ex) {
ex.printStackTrace();
} finally {
if (is != null) {
is.close();
}
}
}
return props;
}
/**
*
* <p>
* Description:根据key值,从配置文件中读取相关配置信息<br />
* </p>
*
* @author gang.li
* @version 0.1 2012-12-6
* @param key
* @return String
*/
public static String getConfigByKey(String propertyName, String key) {
Properties properties;
String propertyValue = null;
try {
properties = PropertiesUtils.loadProperties(propertyName);
// properties = PropertiesUtils.loadProperties("config.properties");
propertyValue = properties.getProperty(key);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return propertyValue;
}
public static void main(String[] args) throws IOException {
Properties properties = PropertiesUtils
.loadProperties("config.properties");
String bandingPath = properties.getProperty("BOOKING_PATH");
System.out.println("BOOKING_PATH = " + bandingPath);
}
/** * 获取整个配置文件中的属性 * @param filePath 文件路径,即文件所在包的路径,例如:java/util/config.properties */ public static Properties readData(String filePath) { filePath = getRealPath(filePath); Properties props = new Properties(); try { InputStream in = new BufferedInputStream(new FileInputStream(filePath)); props.load(in); in.close(); return props; } catch (Exception e) { e.printStackTrace(); return null; } } private static String getRealPath(String filePath) { //获取绝对路径 并截掉路径的”file:/“前缀 return PropertiesConfig.class.getResource("/" + filePath).toString().substring(6); }}