当前位置: 代码迷 >> Java相关 >> 怎么读取war包中的properties文件,不使用web请求上下文的方式实现
  详细解决方案

怎么读取war包中的properties文件,不使用web请求上下文的方式实现

热度:7896   发布时间:2013-02-25 21:48:05.0
如何读取war包中的properties文件,不使用web请求上下文的方式实现
如何读取war包中的properties文件,不使用web请求上下文的方式实现,
项目需求,我想在java project项目中,写个类可以读取war包中的配置文件信息
有什么好的办法呀?

请高手解惑,不胜感激!!!

------解决方案--------------------------------------------------------
Java code
执行前需要将sms.properties文件放在src目录。。package com.test.impt;import java.io.FileInputStream;import java.io.InputStream;import java.util.Properties;public class ReadProperties {    // 配置文件名称    private static final String CONFIG_PROPERTIES_FILE = "sms.properties";        /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        String filePath = Thread.currentThread().getContextClassLoader().getResource("").getPath();        try {            Properties props = loadProperties(filePath + CONFIG_PROPERTIES_FILE);            System.out.println(props.getProperty("dx.server.host")); // 成功输出        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static Properties loadProperties(String propertiesFile)            throws Exception {        Properties props = null;        // propertiesFile = getPropertiesFile(propertiesFile);        // ----------------------------------------------------------------        // ...and if so, then load the values from that external file        InputStream in = null;        try {            in = new FileInputStream(propertiesFile);            props = new Properties();            props.load(in);        } catch (Exception e) {            props = null;        } finally {            if (in != null)                in.close();        }        return props;    }}
------解决方案--------------------------------------------------------
Java code
还有一种方法。。代码量更少的。。package com.test.impt;import java.io.FileInputStream;import java.io.InputStream;import java.util.Properties;public class ReadProperties {    // 配置文件名称    private static final String CONFIG_PROPERTIES_FILE = "sms.properties";    /**     * @param args     */    public static void main(String[] args) {        // TODO Auto-generated method stub        InputStream is = ClassLoader.getSystemResourceAsStream(CONFIG_PROPERTIES_FILE);        try {            Properties props = loadPropertiesFileStream(is);            System.out.println(props.getProperty("dx.server.host")); // 成功输出        } catch (Exception e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }    public static Properties loadPropertiesFileStream(InputStream is)            throws Exception {        Properties props = null;        try {            props = new Properties();            props.load(is);        } catch (Exception e) {            props = null;        } finally {            if (is != null)                is.close();        }        return props;    }}
  相关解决方案