java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
对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的读取、写入与更新操作相关推荐
- java 布局强制转换_[转]JAVA布局模式:GridBagConstraints终极技巧
最近正在 修改<公交线路查询系统>,做系统的时候都是用NULL布局,由于NULL布局调用windows系统的API,所以生成的程序无法在其他平台上应用,而 且如果控件的数量很多,管理起来也 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- java properties更新_对Java配置文件Properties的读取、写入与更新操作
String filepath=System.getProperty("user.dir"); 对下面的程序很有用... /** * 实现对Java配置文件Properties的读 ...
- java批量事物管理_[疯狂Java]JDBC:事务管理、中间点、批量更新
1. 数据库事务的概念: 1) 事务的目的就是为了保证数据库中数据的完整性: 2) 设想一个银行转账的过程,如果分两步,第一步是A的账户-1000,第二步是B的账户+1000,这两个动作必须是连贯的, ...
- java日志切割工具_用 Java 实现的日志切割清理工具
对于服务器的日常维护来说,日志清理是非常重要的事情,如果残留日志过多则严重浪费磁盘空间同时影响服务的性能.如果用手工方式进行清理,会花费太多时间,并且很多时候难以满足实际要求.例如:如何在每个星期六凌 ...
- java pdf插件下载_免费java pdf控件
云原生的概念和理论体系非常的完备,but talk is cheap , show me the code ! 但是作为一名程序员,能动手的咱绝对不多BB,虽然talk并不cheap , 能跟不同层次 ...
- java ee开发环境_设置Java EE 6开发环境
java ee开发环境 本教程简要说明了如何设置典型的环境来开发基于Java EE 6的应用程序. 除了可以正常工作的Windows XP客户端具有足够的CPU能力和内存外,本教程没有其他先决条件. ...
- java 生成pdf 乱码_利用java处理fop导出pdf的中文乱码问题解决方案
本文的作用是,生成带中文的加密pdf格式的文件,防止被人修改. 在项目下建立docbook-xsl, fo-res, out, sample四个文件夹 docbook-xsl目录: 放从sourcef ...
- java标识命名服务_阿里巴巴Java开发规约第一章编程规约-命名风格篇
1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束. 反例: _name /__name / $name / name_ / name$ / name__ 老四附言: ...
最新文章
- Elasticsearch环境搭建
- SpringBoot+Vue+Redis实现前后端分离的字典缓存机制
- java实现动态验证码源代码——接受ajax的jsp
- JUC与JVM并发编程学习笔记03
- 同方linux系统怎样下载软件,同方易教管理平台V2.4使用方法
- 软件测试计划测试范围怎么写,测试计划模板-软件测试报告如何写
- 计算机文化基础清华大学PPT,数据库基础知识清华大学计算机文化基础.ppt
- 【DjangoDRF+缓存+JWT+RabbitMQ 七万字总结】
- 内存及Cache带宽测试
- 来自网页的消息服务器不能创建对象,ActiveXObject(Excel.application)引发Automation 服务器不能创建对象...
- 银行卡收单相关文章汇集
- yansongda 支付宝提现,商家转账
- Unity打造科技风智慧城市夜景教程
- CCF关于NOIP2018获奖证书发放的公告
- 苹果系统装win7教程
- 安卓编程 app图标自定义
- MySQL通过binlog数据恢复
- 在计算机找不到资源管理器,XP资源管理器里找不到文件夹选项的解决方法
- 第六章第二十五题(将毫秒数转换成小时数、分钟数和秒数)(Convert milliseconds to hours, minutes, and seconds)
- 几何光学学习笔记(34)- 7.5 颜色的匹配
热门文章
- 【Elasticsearch】 elasticsearch之Recovery 手动触发索引滚动
- Kibana :报错 Status changed from yellow to red - This version of Kibana requires Elasticsearch v6.8.0
- Spring Boot 操作 Memcache
- private关键字
- php递归实现层级树状展开,PHP递归实现层级树状展开,php递归层级树状_PHP教程...
- android 事件参数传递,android-databinding – 使用android DataBinding库如何将参数传递给绑定事件...
- Solr 通过fl可以设置需要返回的字段
- empty()、isset()、is_null()的区别
- Django 的系统时区设置 RPC
- NOIP2013D1T3货车运输(最大生成树+倍增lca)