Java 读取配置文件Properties

浅浅的花香味﹌ 2022-09-25 07:16 405阅读 0赞

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

  1. package cn.zhangheng.filter;
  2. import java.io.FileOutputStream;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.Enumeration;
  6. import java.util.Properties;
  7. import javax.servlet.Filter;
  8. import javax.servlet.FilterChain;
  9. import javax.servlet.FilterConfig;
  10. import javax.servlet.ServletException;
  11. import javax.servlet.ServletRequest;
  12. import javax.servlet.ServletResponse;
  13. import javax.servlet.http.HttpServletRequest;
  14. import org.apache.log4j.Logger;
  15. /** * 我的过滤器 * * @author zhangheng * @date 2016年8月16日上午10:14:40 * */
  16. public class MyFilter implements Filter {
  17. public static Logger LOG = Logger.getLogger(MyFilter.class);
  18. public static Properties p = new Properties();
  19. public void destroy() {
  20. // 只有在web服务器销毁的时候才会执行
  21. LOG.info("结束过滤。。。");
  22. System.out.println("-----只执行一次---");
  23. }
  24. public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)
  25. throws IOException, ServletException {
  26. LOG.info("执行过滤。。。");
  27. String servletContextPath = request.getServletContext().getContextPath();
  28. System.out.println(servletContextPath);
  29. HttpServletRequest request1 = (HttpServletRequest) request;
  30. String url = request1.getRequestURI();
  31. if (!url.contains("login.do")) {
  32. filterChain.doFilter(request, response);
  33. }
  34. }
  35. /* * 初始化时执行 可以获取web.xml中的参数 (non-Javadoc) * * @see javax.servlet.Filter#init(javax.servlet.FilterConfig) */
  36. public void init(FilterConfig filterConfig) throws ServletException {
  37. LOG.info("初始化过滤。。。");
  38. String filterName = filterConfig.getFilterName();
  39. String param1 = filterConfig.getInitParameter("firstParamName");
  40. String param2 = filterConfig.getInitParameter("secondParamName");
  41. System.out.println("filterName = " + filterName + ";param1 = " + param1 + ";param2 = " + param2);
  42. Enumeration<String> s = filterConfig.getInitParameterNames();
  43. while (s.hasMoreElements()) {
  44. String string = (String) s.nextElement();
  45. System.out.println(string);
  46. }
  47. // 获取xml
  48. InputStream in = MyFilter.class.getResourceAsStream("/para.properties");
  49. try {
  50. p.load(in);//这个方法可以从.properties属性文件对应的文件输入流中,加载属性列表到Properties类对象
  51. LOG.info(p.getProperty("name") + p.getProperty("age"));//这两个方法是分别是获取和设置属性信息。
  52. // 追加
  53. FileOutputStream out = new FileOutputStream("/b.properties", true);
  54. p.setProperty("phone1", "1232451");
  55. p.store(out, "追加信息");//这个方法将Properties类对象的属性列表保存到输出流中。如果comments不为空,保存后的属性文件第一行会是#comments,表示注释信息;如果为空则没有注释信息。注释信息后面是属性文件的当前保存时间信息。
  56. } catch (IOException e) {
  57. e.printStackTrace();
  58. } finally {
  59. p.clone();
  60. }
  61. }
  62. }

发表评论

表情:
评论列表 (有 0 条评论,405人围观)

还没有评论,来说两句吧...

相关阅读

    相关 读取Properties配置文件

    通过读取properties文件获取配置项的值在开发中是很常用的,这种方式降低了变量和代码间的耦合,使得非开发人员也可以很容易的对系统的一些配置进行修改,比如配置数据库连接参数

    相关 java读取properties配置文件

    今天要将以前一个项目的数据连接改成从properties文件中配置。找了好久,网上也不少,可就是读取文件时总是找不到文件在哪(我放在 classes目录下了)。最后终于成功,记