如何读取.properties文件配置的两种方法
1个回答
2016-11-14
展开全部
[html] view plain copy print?
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;
}
}
}
[html] view plain copy print?
[html] view plain copy print?
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;
}
}
}
[html] view plain copy print?
[html] view plain copy print?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询