import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import lombok.extern.slf4j.Slf4j;

/**
 * 获取properties文件,修改文件内容
 * @author lixingh
 */
@Slf4j
public class PropertyModifyUtil extends Thread{
    
    private static Properties properties;
    //文件绝对路径
    private static final String propertiesUrl = "C:/Users/Administrator/Desktop/sysConfig.properties";
    private static String propertiesName;
    static {
        String[] urlArr = propertiesUrl.split("/");
        propertiesName = urlArr[urlArr.length-1];
    }
    
    /**
     * 加载文件
     * @throws IOException
     */
    public static void load() throws IOException{
        properties= new Properties();
        try(FileInputStream fis = new FileInputStream(propertiesUrl)){
            properties.load(fis);
        }
    }
    
    /**
     * 操作文件
     * @param key
     * @param value
     * @return
     */
    public static Boolean optionProperty(String key,String value){
        try (FileOutputStream fos = new FileOutputStream(propertiesUrl)){
            if(properties == null){
                load();
            }
            properties.setProperty(key, value);   
            // 将Properties集合保存到流中   
            properties.store(fos, "Copyright (c) Boxcode Studio");   
        } catch (IOException e) {  
            log.error(propertiesName+" load failed",e);
            return false;
        }
        return true;  
    }  
    
    /**
     * 修改
     * @param key
     * @param value
     * @return
     */
    public static Boolean updateProperty(String key,String value) {
        if(getProperty(key) == null) {
            log.info(propertiesName+" does not have this key");
            return false;
        }
        return optionProperty(key,value);
    }
    
    /**
     * 新增
     * @param key
     * @param value
     * @return
     */
    public static Boolean addProperty(String key,String value) {
        if(getProperty(key) != null) {
            log.info(propertiesName+" already has this key");
            return false;
        }
        return optionProperty(key,value);
    }
    
    /**
     * 获取属性值  
     * @param key
     * @return
     */
    public static String getProperty(String key){  
        try (FileInputStream fis = new FileInputStream(propertiesUrl)) {
            if(properties == null){
                load();
            }
            properties.load(fis);   
        } catch (IOException e) {  
            log.error(propertiesName+" load failed",e);
            return null;
        }   
        return properties.getProperty(key);  
    }
    
}

java读取properties文件并修改、新增属性值相关推荐

  1. java读取properties文件_Java读取Properties文件的六种方法

    Java读取Properties文件有以下六种方法: 1.使用java.util.Properties类的load()方法String fileName="E:/system.propert ...

  2. Java基础学习总结(15)——java读取properties文件总结

    2019独角兽企业重金招聘Python工程师标准>>> 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都 ...

  3. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.      下面直接贴出代码:java类 public class Mytest pu ...

  4. java读取.properties文件及解决中文乱码问题

    java读取.properties文件及解决中文乱码问题 参考文章: (1)java读取.properties文件及解决中文乱码问题 (2)https://www.cnblogs.com/helloq ...

  5. JAVA读取Properties文件对象常用方法总结

    实际开发中,总是会需要用到配置文件的,常用的就是properties.xml.json.比如,使用jdbc访问数据库时,我们就可以将driver.url.username.password这几个参数记 ...

  6. java读取Properties文件及赋值

    懒得整理了,直接复制我工程里的代码: 第一个读取文件的类可以直接复制, 不复制的话,在下面取值和赋值部分的代码new EmailProperRead(systemType).properties根据自 ...

  7. java读取properties文件_java读取properties文件的几种方法

    一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取 1 Properties p=newProperties() ...

  8. Java读取Properties文件的六种方法

    1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream ...

  9. java 读取properties文件

    1.不在项目中读取 Properties properties = new Properties();                 BufferedReader read = new Buffer ...

最新文章

  1. qt 控件 背景色 透明 除去边框
  2. California Dreaming
  3. SQLSERVER 2008 R2中的全文检索
  4. [ERROR]在删除BizTalk主机之前必须删除其所有实例?
  5. ABAP实现本地化的资产负债表和损益表
  6. 洛谷 P1463 [POI2002][HAOI2007]反素数
  7. MATLAB路径的正确书写方式
  8. NYOJ-括号配对问题(数据结构)
  9. 【Win 10应用开发】认识一下UAP项目
  10. Mysql 查询列名
  11. 内核调试神器SystemTap — 简介与使用(一)
  12. Mac计算查看文件Md5
  13. 支付宝 alipay.fund.trans.uni.transfer(单笔转账接口)功能整合
  14. 【SQL注入技巧拓展】————14、Bypass 360主机卫士SQL注入防御(附tamper脚本)
  15. 服务器上的360不显示网速慢,服务器网速慢怎么解决
  16. OpenREALM :基于视觉SLAM和三维重建的无人机实时空中测绘
  17. 使用Vue+Element-UI从0搭建一个常见的前端模板
  18. Java-底层建筑-JVM-第3篇-StringTable
  19. 360浏览器兼容模式下js失效的问题
  20. potplayer默认专辑加载同一文件夹下所有视频,只读取一部分视频,加载视频目录不完整

热门文章

  1. 不同网络结构的特征也能进行对比学习?蚂蚁美团南大阿里提出跨架构自监督视频表示学习方法CACL,性能SOTA!...
  2. 项目经理如何做好项目管理中的风险管理
  3. python连接oracle批量写入_批量插入oracle数据库数据
  4. OpenStack组件--Cinder
  5. 大疆无人机直播延迟的解决对策
  6. 【蓝牙】一文入门Bluez的BLE基础开发 - BLE数据收发(Python)
  7. python生成微软日历可以使用的ics文件
  8. 提权学习:第三方软件提权(G6FTP 提权) 8021
  9. Java ~ Reference ~ PhantomReference【源码】
  10. 使用CSS将图片转换成黑白(灰色、置灰)