您的位置:首页 > 运维架构

如何读取.properties文件配置的两种方法

2012-11-29 15:23 901 查看
第一种方法:
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
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 Util函数.
*
* @author uniz
*/
public class PropertiesUtils {

private static final String DEFAULT_ENCODING = "UTF-8";

private static Logger logger = LoggerFactory.getLogger(PropertiesUtils.class);

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) {

logger.debug("Loading properties file from:" + location);

InputStream is = null;
try {
Resource resource = resourceLoader.getResource(location);
is = resource.getInputStream();
propertiesPersister.load(props, new InputStreamReader(is, DEFAULT_ENCODING));
} catch (IOException ex) {
logger.info("Could not load properties from classpath:" + location + ": " + ex.getMessage());
} finally {
if (is != null) {
is.close();
}
}
}
return props;
}

public static String getDataVal(String key) {
try {
Properties properties = PropertiesUtils.loadProperties("/config/config.properties");
if (properties == null) return "";

return new String((properties.getProperty(key))
.getBytes("ISO8859_1"), "utf-8");
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
 
第二种方法:


package com.cl.common.utils;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Properties;

import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.Resource;
import org.springframework.util.DefaultPropertiesPersister;

public class PropertiesUtils {
public PropertiesUtils(){
}
private static Properties props = new Properties();

public static void loadProperties(String path){
//		InputStream is = null;
//		Resource rs = new DefaultResourceLoader().getResource(path);
//		try {
//			is = rs.getInputStream();
//			new DefaultPropertiesPersister().load(props, new InputStreamReader(is,"UTF-8"));
//		} catch (UnsupportedEncodingException e) {
//			e.printStackTrace();
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
try {
props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("/config/application.properties"));
} catch (IOException e) {
e.printStackTrace();
}
}
public static String getVal(String key){
return props.getProperty(key);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: