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

 我来答
匿名用户
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?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式