读取某个目录的文件属性文件

ResourcePatternResolver rer = new PathMatchingResourcePatternResolver();

 

Resource[] resources = (Resource[])null;

    try {

      resources = rer.getResources(“classpath*:/config/**/*.properties”);

    } catch (IOException ioe) {

      log.error("读取资源文件时出现错误,返回null ...", ioe);

      return null;

    }

 

 

for (Resource res : resources) {

      try {

        InputStream is = null;

        URL resourceUrl = res.getURL();

        String fileName = res.getFilename();

        if ("file".equals(resourceUrl.getProtocol())) {

 

          is = new FileInputStream(res.getFile());

          if (fileName.endsWith(".properties")) {

            this.load(is);

          }

          p.subProperties.add(subProperty);

          log.debug("成功从文件系统加载资源文件[" + subProperty.path + "]..."); break label372:

        }

        log.debug("资源文件[" + fileName + "]不存在于文件系统,将通过ClassLoader进行加载,热修改功能关闭...");

        is = res.getInputStream();

        if (fileName.endsWith(".xml")) {

          p.loadFromXml(is); break label372: }

        if (fileName.endsWith(".properties")) {

          p.load(is);

        }

      }

      catch (Exception e)

      {

        log.error("加载属性文件时出现错误 ... ", e);

      }

    }

 

//加载

 

public void load(InputStream inStream) throws IOException

  {

    super.load(inStream);

    String encoding = super.getProperty("ENCODING");

    if ("ISO-8859-1".equals(encoding)) {

      return;

    }

    try

    {

      Map.Entry[] entries = new Map.Entry[entrySet().size()];

      entrySet().toArray(entries);

      for (int i = entries.length; --i >= 0; ) {

        Map.Entry entry = entries[i];

        String value = (String)entry.getValue();

        value = new String(value.getBytes("ISO-8859-1"), encoding);

        String key = new String(((String)entry.getKey()).getBytes("ISO-8859-1"), encoding);

        setProperty(key, value);

      }

    }

    catch (UnsupportedEncodingException localUnsupportedEncodingException)

    {

    }

  }

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值