Java 读取配置文件Properties

来源:互联网 发布:array python 编辑:程序博客网 时间:2024/05/16 16:56

 Properties类继承自Hashtable类并且实现了Map接口,也是使用一种键值对的形式来保存属性集。不过Properties有特殊的地方,就是它的键和值都是字符串类型。
 
代码如下:

package cn.zhangheng.filter;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Enumeration;import java.util.Properties;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;import org.apache.log4j.Logger;/** * 我的过滤器 *  * @author zhangheng * @date 2016年8月16日上午10:14:40 * */public class MyFilter implements Filter {    public static Logger LOG = Logger.getLogger(MyFilter.class);    public static Properties p = new Properties();    public void destroy() {        // 只有在web服务器销毁的时候才会执行        LOG.info("结束过滤。。。");        System.out.println("-----只执行一次---");    }    public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)            throws IOException, ServletException {        LOG.info("执行过滤。。。");        String servletContextPath = request.getServletContext().getContextPath();        System.out.println(servletContextPath);        HttpServletRequest request1 = (HttpServletRequest) request;        String url = request1.getRequestURI();        if (!url.contains("login.do")) {            filterChain.doFilter(request, response);        }    }    /*     * 初始化时执行 可以获取web.xml中的参数 (non-Javadoc)     *      * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)     */    public void init(FilterConfig filterConfig) throws ServletException {        LOG.info("初始化过滤。。。");        String filterName = filterConfig.getFilterName();        String param1 = filterConfig.getInitParameter("firstParamName");        String param2 = filterConfig.getInitParameter("secondParamName");        System.out.println("filterName = " + filterName + ";param1 = " + param1 + ";param2 = " + param2);        Enumeration<String> s = filterConfig.getInitParameterNames();        while (s.hasMoreElements()) {            String string = (String) s.nextElement();            System.out.println(string);        }        // 获取xml        InputStream in = MyFilter.class.getResourceAsStream("/para.properties");        try {            p.load(in);//这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象            LOG.info(p.getProperty("name") + p.getProperty("age"));//这两个方法是分别是获取和设置属性信息。            // 追加            FileOutputStream out = new FileOutputStream("/b.properties", true);            p.setProperty("phone1", "1232451");            p.store(out, "追加信息");//这个方法将Properties类对象的属性列表保存到输出流中。如果comments不为空,保存后的属性文件第一行会是#comments,表示注释信息;如果为空则没有注释信息。注释信息后面是属性文件的当前保存时间信息。        } catch (IOException e) {            e.printStackTrace();        } finally {            p.clone();        }    }}
0 1
原创粉丝点击