对Java配置文件Properties的读取、写入与更新操作

注:当前项目路径是

String filepath=System.getProperty("user.dir");

对下面的程序很有用...

/**

* 实现对Java配置文件Properties的读取、写入与更新操作

*/

package test;

import java.io.BufferedInputStream;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.util.Properties;

/**

* @author

* @version

*/

public class SetSystemProperty {

//属性文件的路径

static String profilepath="mail.properties";

/**

* 采用静态方法

*/

private static Properties props = new Properties();

static {

try {

props.load(new FileInputStream(profilepath));

} catch (FileNotFoundException e) {

e.printStackTrace();

System.exit(-1);

} catch (IOException e) {

System.exit(-1);

}

}

/**

* 读取属性文件中相应键的值

* @param key

*            主键

* @return String

*/

public static String getKeyValue(String key) {

return props.getProperty(key);

}

/**

* 根据主键key读取主键的值value

* @param filePath 属性文件路径

* @param key 键名

*/

public static String readValue(String filePath, String key) {

Properties props = new Properties();

try {

InputStream in = new BufferedInputStream(new FileInputStream(

filePath));

props.load(in);

String value = props.getProperty(key);

System.out.println(key +"键的值是:"+ value);

return value;

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

/**

* 更新(或插入)一对properties信息(主键及其键值)

* 如果该主键已经存在,更新该主键的值;

* 如果该主键不存在,则插件一对键值。

* @param keyname 键名

* @param keyvalue 键值

*/

public static void writeProperties(String keyname,String keyvalue) {

try {

// 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。

// 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。

OutputStream fos = new FileOutputStream(profilepath);

props.setProperty(keyname, keyvalue);

// 以适合使用 load 方法加载到 Properties 表中的格式,

// 将此 Properties 表中的属性列表(键和元素对)写入输出流

props.store(fos, "Update '" + keyname + "' value");

} catch (IOException e) {

System.err.println("属性文件更新错误");

}

}

/**

* 更新properties文件的键值对

* 如果该主键已经存在,更新该主键的值;

* 如果该主键不存在,则插件一对键值。

* @param keyname 键名

* @param keyvalue 键值

*/

public void updateProperties(String keyname,String keyvalue) {

try {

props.load(new FileInputStream(profilepath));

// 调用 Hashtable 的方法 put,使用 getProperty 方法提供并行性。

// 强制要求为属性的键和值使用字符串。返回值是 Hashtable 调用 put 的结果。

OutputStream fos = new FileOutputStream(profilepath);

props.setProperty(keyname, keyvalue);

// 以适合使用 load 方法加载到 Properties 表中的格式,

// 将此 Properties 表中的属性列表(键和元素对)写入输出流

props.store(fos, "Update '" + keyname + "' value");

} catch (IOException e) {

System.err.println("属性文件更新错误");

}

}

//测试代码

public static void main(String[] args) {

readValue("mail.properties", "MAIL_SERVER_PASSWORD");

writeProperties("MAIL_SERVER_INCOMING", "327@qq.com");

System.out.println("操作完成");

}

}

另一个例子:此处的文件common.properties和 Config类都在class src下面

Java代码  

public static String getValue(String key) {

try {

InputStream inputStream = Config.class.getClassLoader().getResourceAsStream("common.properties");

property.load(inputStream);

} catch (Exception e) {

e.printStackTrace();

}

return (String) property.get(key);

}

java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作相关推荐

  1. java 布局强制转换_[转]JAVA布局模式:GridBagConstraints终极技巧

    最近正在 修改<公交线路查询系统>,做系统的时候都是用NULL布局,由于NULL布局调用windows系统的API,所以生成的程序无法在其他平台上应用,而 且如果控件的数量很多,管理起来也 ...

  2. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  3. java properties更新_对Java配置文件Properties的读取、写入与更新操作

    String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /** * 实现对Java配置文件Properties的读 ...

  4. java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新

    1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...

  5. java日志切割工具_用 Java 实现的日志切割清理工具

    对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...

  6. java pdf插件下载_免费java pdf控件

    云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...

  7. java ee开发环境_设置Java EE 6开发环境

    java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...

  8. java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案

    本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...

  9. java标识命名服务_阿里巴巴Java开发规约第一章编程规约-命名风格篇

    1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name /__name / $name / name_ / name$ / name__ 老四附言: ...

最新文章

  1. Elasticsearch环境搭建
  2. SpringBoot+Vue+Redis实现前后端分离的字典缓存机制
  3. java实现动态验证码源代码——接受ajax的jsp
  4. JUC与JVM并发编程学习笔记03
  5. 同方linux系统怎样下载软件,同方易教管理平台V2.4使用方法
  6. 软件测试计划测试范围怎么写,测试计划模板-软件测试报告如何写
  7. 计算机文化基础清华大学PPT,数据库基础知识清华大学计算机文化基础.ppt
  8. 【DjangoDRF+缓存+JWT+RabbitMQ 七万字总结】
  9. 内存及Cache带宽测试
  10. 来自网页的消息服务器不能创建对象,ActiveXObject(Excel.application)引发Automation 服务器不能创建对象...
  11. 银行卡收单相关文章汇集
  12. yansongda 支付宝提现,商家转账
  13. Unity打造科技风智慧城市夜景教程
  14. CCF关于NOIP2018获奖证书发放的公告
  15. 苹果系统装win7教程
  16. 安卓编程 app图标自定义
  17. MySQL通过binlog数据恢复
  18. 在计算机找不到资源管理器,XP资源管理器里找不到文件夹选项的解决方法
  19. 第六章第二十五题(将毫秒数转换成小时数、分钟数和秒数)(Convert milliseconds to hours, minutes, and seconds)
  20. 几何光学学习笔记(34)- 7.5 颜色的匹配

热门文章

  1. 【Elasticsearch】 elasticsearch之Recovery 手动触发索引滚动
  2. Kibana :报错 Status changed from yellow to red - This version of Kibana requires Elasticsearch v6.8.0
  3. Spring Boot 操作 Memcache
  4. private关键字
  5. php递归实现层级树状展开,PHP递归实现层级树状展开,php递归层级树状_PHP教程...
  6. android 事件参数传递,android-databinding – 使用android DataBinding库如何将参数传递给绑定事件...
  7. Solr 通过fl可以设置需要返回的字段
  8. empty()、isset()、is_null()的区别
  9. Django 的系统时区设置 RPC
  10. NOIP2013D1T3货车运输(最大生成树+倍增lca)