2019独角兽企业重金招聘Python工程师标准>>>

在做项目的时候有些数据不一定需要在数据库管理,例如数据库连接,定时任务等等的配置..有时候需要动态修改这些数据,但在修改完后,再次获取时出现问题.

  在项目中要修改properties,修改之后,再进入相关目录查看properties文件,发现内容已经修改了,但是但通过TaskController.class.getResourceAsStream("/config.properties");获取的数据时,还是没有改变前的数据.

   原因是:.getResourceAsStream是通过缓存中获取的.

   解决办法:能过真实路径获取TaskController.class.getResource("/config.properties").getPath();

操作properties文件工具类:

package com.lanyuan.video.util;import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.Iterator;
import java.util.Properties;
import java.util.Map.Entry;
import com.lanyuan.video.task.TaskController;public class PropertiesUtils {/*** 获取属性文件的数据 根据key获取值* @param fileName 文件名 (注意:加载的是src下的文件,如果在某个包下.请把包名加上)* @param key* @return*/public static String findPropertiesKey(String key) {try {Properties prop = getProperties();return prop.getProperty(key);} catch (Exception e) {return "";}}public static void main(String[] args) {Properties prop = new Properties();InputStream in = TaskController.class.getResourceAsStream("/config.properties");try {prop.load(in);Iterator<Entry<Object, Object>> itr = prop.entrySet().iterator();while (itr.hasNext()) {Entry<Object, Object> e = (Entry<Object, Object>) itr.next();System.err.println((e.getKey().toString() + "" + e.getValue().toString()));}} catch (Exception e) {}}/*** 返回 Properties* @param fileName 文件名 (注意:加载的是src下的文件,如果在某个包下.请把包名加上)* @param * @return*/public static Properties getProperties(){Properties prop = new Properties();String savePath = TaskController.class.getResource("/config.properties").getPath();//以下方法读取属性文件会缓存问题
//      InputStream in = TaskController.class
//              .getResourceAsStream("/config.properties");try {InputStream in =new BufferedInputStream(new FileInputStream(savePath));  prop.load(in);} catch (Exception e) {return null;}return prop;}/*** 写入properties信息* * @param key*            名称* @param value*            值*/public static void modifyProperties(String key, String value) {try {// 从输入流中读取属性列表(键和元素对)Properties prop = getProperties();prop.setProperty(key, value);String path = TaskController.class.getResource("/config.properties").getPath();FileOutputStream outputFile = new FileOutputStream(path);prop.store(outputFile, "modify");outputFile.close();outputFile.flush();} catch (Exception e) {}}
}

转载于:https://my.oschina.net/lanyuancom/blog/175393

解决修改properties 属性文件存在缓存问题,附带操作properties文件工具类相关推荐

  1. .NET Core(C#) 反射类的属性(PropertyInfo)、字段(FieldInfo)和方法(MethodInfo)相关操作扩展方法工具类

    本文主要介绍.NET Core(C#)中,使用反射进行类(class)的属性(PropertyInfo).字段(FieldInfo)和方法(MethodInfo)相关操作,通过扩展方法编写的工具类,以 ...

  2. springboot 中的 文件、短信、邮件、token 工具类

    1.文件工具类 主要功能为文件上传,结合阿里云 OSS 对象存储.上传文件类型包括文档.音频.视频.图片等,可自定义文件夹,文件未加密.自动生成文件名,文件上传成功后返回原文件名.新文件名.文件大小. ...

  3. python中io.textio_Python文件读写概述(IO操作、文件读写、stringiobytesio、序列化),python,的,小,总结,StringIOBytesIO...

    IO操作 在进行文件的读写之前,需要说明几点.首先,运行的程序和读取的数据都会在内存中缓存. 进入到 程序或数据 内存 其次,用python程序进行文件的读写,需要创建一个小工具–文件流,用来处理数据 ...

  4. csv文件怎么转成excel_Python操作Excel文件(1):花式大师pyexcel

    本文共2900余字,预计阅读时间12分钟,本文知乎连接:Python操作Excel文件(1):花式大师pyexcel,本文同步发布于silaoA的博客和微信公众号平台. 关注学习了解更多的Cygwin ...

  5. JAVA 获取文件的MD5值大小以及常见的工具类

    1 /** 2 * 获取文件的MD5值大小 3 * 4 * @param file 5 * 文件对象 6 * @return 7 */ 8 public static String getMD5(Fi ...

  6. hssfwork 导出excel 文件已损坏_C# NPOI 操作EXCEL文件的读取和导出

    在实际项目中有很多场景遇到需要操作EXCEL文件,而常用到的库就有NPOI:NPOI是开源的POI 项目的.NET版,POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目, ...

  7. java 文件去除扩展名_Java操作——获取文件扩展名,去掉文件扩展名

    昨天收邮件,得知要参加一个产品部的会议,猜想,也许是因为我做的这个产品demo问题.于是昨天忙活到凌晨3点半,结果早上一来才知道又被调戏了.发邮件的MM把邮件误发给我了.悲催啊有木有,困啊有木有!自己 ...

  8. Java实现minio文件服务web在线解压上传工具类

    前言 文章中的web解压工具类结合了minio文件服务,上传解压文件过程中,先解压成文件流,再将解压的文件又上传到minio文件服务器上.(不同本地文件服务,可以直接用文件copy的方式,cpoy到服 ...

  9. jdbc链接mysql的第二个例子。使用properties文件存放连接信息。使用jar文件一个

    该例子将jdbc的链接信息封装到properties文件中.并将jdbc的基本使用框架提取到一个jdbcUtils类中.简化了jdbc操作数据库的操作. JdbcUtil工具类: package co ...

最新文章

  1. c语言程序设计江宝钏实验六答案,《C语言程序设计》(江宝钏著)实验三答案.doc...
  2. Java日志框架Slf4j+Log4j入门
  3. boost::system模块实现初始化顺序的测试程序
  4. 技术人生——解决问题的规律
  5. 多线程与高并发(五):强软弱虚四种引用以及ThreadLocal的原理与源码
  6. python调用公共方法_common: 这是一个Python的公共工具类,集成了各种主要的python常用方法...
  7. python3连接数据库失败_python3使用pymysql连接mysql数据库报Keyerror
  8. php日期相减函数,倒计时函数_计算两个时间相差值_PHP函数
  9. 倒计时小工具_这款高颜值的 APP 可以让小仙女/男神们的日子过得更精致
  10. matlab字符和字符串,MATLAB字符和字符串
  11. Java Web实战篇-轻松提高千万级数据库查询效率
  12. matlab音频指纹识别_指纹识别算法matlab实现.doc
  13. 本科计算机考研统计学,统计学考研考什么科目
  14. (二)office2016-excel冻结窗格
  15. 腾讯T1~T9级别工程师具备专业的能力及知识点总结。
  16. 【软件测试】8年资深测试解析,软件测试行业情报,风风雨雨......
  17. 十道必问的软件测试面试题(含答案解析)
  18. [Practical.Vim(2012.9)].Drew.Neil.Tip16学习摘要
  19. 互联网公司招聘奇葩黑历史
  20. 语音翻译app排行十大最好用的语音识别翻译软件

热门文章

  1. windows oracle path,Oracle-Windows平台Path的问题
  2. Specification排序orderby
  3. 使用jsDelivr加速GitHub的静态资源
  4. 台式电脑可以练计算机二级嘛6,练习六-计算机二级考试OFFICE高级应用试卷与试题.pdf...
  5. 青海省计算机应用能力考试,青海省2015年职称计算机应用能力考试西宁考区四月份考试安排通知...
  6. jq 请求本地的json_jQuery使用ajax读取本地json文件的案例
  7. 客户端安装服务器的路径查找文件,柴少鹏的官方网站-puppet系列(一)之puppet的部署、配置文件以及命令详解...
  8. html调用百度地图语音播报,实现百度地图导航演示的语音播放功能
  9. python 文件更新_使用Python批量更新服务器文件【新手必学】
  10. java基本数据类型_Java基础——数据类型