最近空闲时间整理一下平时常用的一下工具类,重复造轮子实在是浪费时间,如果不正确或者有待改善的地方,欢迎指教...

package com.hsuchan.business.utils;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
import org.apache.log4j.Logger; /**
* Java属性文件操作工具类
* <p>由于每个人的需求不一样,所以本工具只提供常用的功能(包括根据键名获取键值,根据键名修改键值),
* 如果不满足,自个完全可以修改,在本工具类中,我们假设属性文件已经存在,并且文件中已经存在我们要操作的key</p>
* @authorHsuChan
* @version v1.0.0 2015-06-19
*/
public class PropertiesUtil {
private static Properties properties= new Properties();
private static Logger logger = Logger.getLogger(PropertiesUtil.class);
/**测试用 属性文件名*/
private static final String PROPERTIES_FILE_PATH="/config.properties";
/**测试用 操作的键名*/
private static final String KEY_NAME="content"; /**
* 初始化properties
* @param path 属性文件路径,如:/config.properties
*/
private static void initProperties(String path) { try {
InputStream ipsm = PropertiesUtil.class.getResourceAsStream(path);
properties.load(ipsm);
ipsm.close();
} catch (IOException e) {
logger.error(e.getMessage());
}
} /**
* 根据键名key获取属性文件中对应的键值
* @param path 属性文件路径,如:/config.properties
* @param key 属性文件 键名
* @return
*/
public static String getValueByKey(String path,String key){
//如果properties为空,则初始化
if(properties.isEmpty())
initProperties(path);
return properties.getProperty(key);
} /**
* 通过键名key修改其对应的值为value
* @param path 属性文件路径,如:/config.properties
* @param key 属性文件 键名
* @param value 属性文件 键值
*/
public static void modifyValueByKey(String path,String key,String value) {
//如果properties为空,则初始化
if(properties.isEmpty())
initProperties(path);
//修改值
properties.setProperty(key, value); try {
//获取文件路径
URL url = PropertiesUtil.class.getResource(path);
FileOutputStream fos = new FileOutputStream(new File(url.toURI()));
//保存到文件
properties.store(fos, "modify the value of key");
fos.close();
} catch (Exception e) {
logger.error(e.getMessage());
}
} /**
* 测试
* @param args
*/
public static void main(String[] args) {
//取值示例
System.out.println("修改前:"+getValueByKey(PROPERTIES_FILE_PATH,KEY_NAME));
//修改示例
modifyValueByKey(PROPERTIES_FILE_PATH,KEY_NAME,"3333311s");
//取值示例
System.out.println("修改后:"+getValueByKey(PROPERTIES_FILE_PATH,KEY_NAME)); }
}

转载请注明出处,谢谢。

最新文章

  1. 关于用display:table让元素居中的小结
  2. Day17_集合第三天
  3. 文件过滤器 filter
  4. iOS性能优化之内存管理:Analyze、Leaks、Allocations的使用和案例代码
  5. CSS笔记(八)表格
  6. MongoDB分片简单实例
  7. android81 多线程下载和断电续传
  8. Git如何Check Out出指定文件或者文件夹
  9. wpf 控件复制 克隆
  10. 事件的委托处理(Event Delegation)
  11. nodejs 初学笔记
  12. shell 提取字符串
  13. LPC1788的ADC和DAC使用
  14. php示例的错误记录
  15. Troubleshooting ORA-12547 TNS: Lost Contact (Doc ID 555565.1)
  16. 访问修饰符 public private protected default
  17. MySQL5.7 虚拟列实现表达式或函数索引
  18. postgresql:terminate hung query
  19. MVC 下 JsonResult 的使用方法(JsonRequestBehavior.AllowGet)
  20. This is me

热门文章

  1. java中数组的基本知识
  2. table隔行变色
  3. new Array(n) 的坑 密集数组和稀疏数组
  4. .net导入excel数据到数据库中
  5. Linux学习之三--scp命令
  6. 在firefox浏览器下,scrollTop始终为0的问题
  7. Qt-导入第三方库
  8. ProgressBar---进度条
  9. websocket业务代码
  10. Java基础高级二(多线程)