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的读取、写入与更新操作相关推荐

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

    对Java配置文件Properties的读取.写入与更新操作 注:当前项目路径是 String filepath=System.getProperty("user.dir"); 对 ...

  2. java语音开源_号外!号外!百度语音开源库更新了

    [开源:ReactNative集成百度语音开源库,](CSDN-专业IT技术社区-登录)在这篇文章中作者开源了一个ReactNative集成百度语音合成的组件库,今天通过查看Github上的关于开源r ...

  3. java skip函数_【Java必修课】图说Stream中的skip()和limit()方法及组合使用

    1 简介 本文将讲解Java 8 Stream中的两个方法:skip()和limit().这两个方法是Stream很常用的,不仅各自会被高频使用,还可以组合出现,并能实现一些小功能,如subList和 ...

  4. java反射实例_关于java反射的一个案例

    案例: *需求:"写一个框架",可以帮我们创建任意类的对象,并且执行其中任意的方法. *实现: 1.配置文件 2.反射 *步骤: 1.将需要创建的对象的全类名和需要执行的方法定义在 ...

  5. java初学者指南_企业Java中事务隔离级别的初学者指南

    java初学者指南 介绍 基于ACID事务属性的关系数据库强一致性模型. 在本文中,我们将阐明对资源本地事务和JTA事务使用不同的事务隔离级别和各种配置模式的背后原因. 隔离和一致性 在关系数据库系统 ...

  6. java queue使用_使用Java使用Amazon Simple Queue Service

    java queue使用 Amazon Simple Queue Service或SQS是Amazon Webservice堆栈提供的高度可扩展的托管消息队列. Amazon SQS可用于完全解耦系统 ...

  7. java web构建_使用Java构建一个宁静的Web服务

    java web构建 介绍 (Introduction) Due to its exponential growth, REST(Representational State Transfer) ha ...

  8. java作用域范围_比较java中四个域的作用域范围大小

    四个域的作用域范围大小:PageContext (page域) < request < session < servletContext(application域) 一.Servle ...

  9. java web服务_将Java服务公开为Web服务

    java web服务 本教程解决了开发人员面临的最实际的情况. 大多数时候,我们可能需要将某些现有服务公开为Web服务. 在项目生命周期的不同阶段可能会遇到这种情况. 如果这是初始阶段,那么您几乎是安 ...

最新文章

  1. python编程基础教程-史上最全Python编程基础入门教程
  2. android 判断按钮是否已经有onclicklinstener,通过点击事件监听setOnClickListener彻底理解回调...
  3. java实战调用数据库_实战php调用java类由java类读数据库完成相关操作(InberWrite)_PHP...
  4. java编程一般类抽象类的定义,Java编程基础抽象类
  5. python-kafka 常用 api 汇总
  6. 设计模式之禅--思维导图
  7. 8月全球搜索引擎市场:百度位居第四 份额大涨
  8. sprint 3 总结
  9. 【资源】同济线性代数教材(第五版)
  10. python下载百度文库文档_Python百度文库爬虫之txt文件
  11. WEB小项目-账务管理系统(2020年03月24日更新,附数据库和源码包)
  12. 嵌入式大杂烩周记 | 第 7 期:zlog
  13. 清明去哪玩儿? 可视化工具帮你锁定旅游TOP10!
  14. Unity贴图ASTC压缩格式
  15. hive mapreduce reducer 调优
  16. SQL注入之堆叠及WAF绕过注入
  17. 微信小程序实现生成海报并且保存本地
  18. 深圳大学计算机专硕和学硕的区别,2021深大考研:学硕专硕的区别
  19. Linux—系统安全及应用
  20. API卡_[api]必应词典查询api,naive implementation

热门文章

  1. agc007B - Construct Sequences(构造)
  2. 线程启动start和run
  3. Qt自动填写表单并点击按钮,包括调用js方法
  4. 【逆向】UE4 渲染流程分析
  5. JAVA-JSP内置对象之pageContext对象取得不同范围属性
  6. hive 数据迁移SQL
  7. 将json转换成struts参数
  8. centos7 安装 openssl
  9. golang 反射 reflect 设置 struct 字段
  10. java rmi 原理和使用浅析