动态修改properties文件小问题

前几天有个小需求大概意思是:通过MQ和动态修改配置文件,达到动态控制前后端版本号统一。动态修改配置文件之前觉得是一个很简单的需求,可是真正开始做的时候一脚就踩坑里了。

当我们读取的时候经常会使用ClassLoader.getResourceAsStream()去读文件,但是这样当我们想要去修改文件再重新读取的时候就会出现数据不同步的情况。原因很简单,这个方式会导致读取的文件保存在缓存中!每当重新执行语句的时候,将会直接缓存拿这个文件,而不去访问文件本身。
为了解决这个问题,最好的办法就是不去使用ClassLoader.getResourceAsStream();我们可以使用FileInputStream直接对文件本身进行读写。但是问题又来了,这个方式需要我们提供文件的绝对路径 ,但是很多情况下,我们只想通过文件的相对路径去找到文件,那如何解决新问题呢?
经过查阅资料,我发现了我忽视了一个很重要点——通过Thread.currentThread().getContextClass().getResource("文件名").getPath();
即可得到文件的详细路径包括名称虽然本质上也是拿的绝对路径,但是效果上动态了很多,当然可以根据自己的需要去进行功能的调整。个人感觉写工具类什么的还是很灵活的,实现需求是主要的,对应需求为主即可。优化都是实现功能之后的事情啦~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,318评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,380评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,860评论 9 468
  • 简的爱情缘于一条围巾,刚刚过去的寒假里,她戴着自己织的大红围巾等公交车。 一个高她三届的学长走过来,自然地拉起了她...
    UHS阅读 1,592评论 0 0
  • AndroidStudio JNI开发时,javah生成c头文件出现找不到android.support.v7.a...
    Longmaxie阅读 1,501评论 0 0