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 2008.11.14
*/
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("操作完成");
}
}
posted on 2010-01-17 17:04 飞熊 阅读(2292) 评论(0) 编辑 收藏 所属分类: java
java properties更新_对Java配置文件Properties的读取、写入与更新操作相关推荐
- java配置文件强制更新_对Java配置文件Properties的读取、写入与更新操作
对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...
- java语音开源_号外!号外!百度语音开源库更新了
[开源:ReactNative集成百度语音开源库,](CSDN-专业IT技术社区-登录)在这篇文章中作者开源了一个ReactNative集成百度语音合成的组件库,今天通过查看Github上的关于开源r ...
- java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用
1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...
- java反射实例_关于java反射的一个案例
案例: *需求:"写一个框架",可以帮我们创建任意类的对象,并且执行其中任意的方法. *实现: 1.配置文件 2.反射 *步骤: 1.将需要创建的对象的全类名和需要执行的方法定义在 ...
- java初学者指南_企业Java中事务隔离级别的初学者指南
java初学者指南 介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统 ...
- java queue使用_使用Java使用Amazon Simple Queue Service
java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...
- java web构建_使用Java构建一个宁静的Web服务
java web构建 介绍 (Introduction) Due to its exponential growth, REST(Representational State Transfer) ha ...
- java作用域范围_比较java中四个域的作用域范围大小
四个域的作用域范围大小:PageContext (page域) < request < session < servletContext(application域) 一.Servle ...
- java web服务_将Java服务公开为Web服务
java web服务 本教程解决了开发人员面临的最实际的情况. 大多数时候,我们可能需要将某些现有服务公开为Web服务. 在项目生命周期的不同阶段可能会遇到这种情况. 如果这是初始阶段,那么您几乎是安 ...
最新文章
- python编程基础教程-史上最全Python编程基础入门教程
- android 判断按钮是否已经有onclicklinstener,通过点击事件监听setOnClickListener彻底理解回调...
- java实战调用数据库_实战php调用java类由java类读数据库完成相关操作(InberWrite)_PHP...
- java编程一般类抽象类的定义,Java编程基础抽象类
- python-kafka 常用 api 汇总
- 设计模式之禅--思维导图
- 8月全球搜索引擎市场:百度位居第四 份额大涨
- sprint 3 总结
- 【资源】同济线性代数教材(第五版)
- python下载百度文库文档_Python百度文库爬虫之txt文件
- WEB小项目-账务管理系统(2020年03月24日更新,附数据库和源码包)
- 嵌入式大杂烩周记 | 第 7 期:zlog
- 清明去哪玩儿? 可视化工具帮你锁定旅游TOP10!
- Unity贴图ASTC压缩格式
- hive mapreduce reducer 调优
- SQL注入之堆叠及WAF绕过注入
- 微信小程序实现生成海报并且保存本地
- 深圳大学计算机专硕和学硕的区别,2021深大考研:学硕专硕的区别
- Linux—系统安全及应用
- API卡_[api]必应词典查询api,naive implementation