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

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)); }
}

转载请注明出处,谢谢。

Java操作属性文件之工具类的更多相关文章

  1. Java操作属性文件,支持新增或更新多个属性

    Java操作属性文件.支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包含文件名称和后缀名) * @par ...

  2. Java 操作Redis封装RedisTemplate工具类

    package com.example.redisdistlock.util; import org.springframework.beans.factory.annotation.Autowire ...

  3. Java操作属性文件与国际化

    在前面讲到的java类集中的Hashtable中,有一个子类Properties,此类定义如下: public class Properties extends Hashtable<Object ...

  4. java简单的文件读写工具类

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...

  5. java IO Nio 文件拷贝工具类Files

    public static void main(String[] args) throws Exception { Files.copy(Paths.get("file/text.txt&q ...

  6. 文件类型工具类:FileTypeUtil

    个人学习,仅供参考! package com.example.administrator.filemanager.utils;import java.io.File;/** * 文件类型工具类 * * ...

  7. java文件处理工具类

    import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...

  8. Java 文件切割工具类

    Story: 发送MongoDB 管理软件到公司邮箱,工作使用. 1.由于公司邮箱限制附件大小,大文件无法发送,故做此程序用于切割大文件成多个小文件,然后逐个发送. 2.收到小文件之后,再重新组合成原 ...

  9. Java 压缩文件夹工具类(包含解压)

    依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons ...

随机推荐

  1. Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下

    uss_web如果没有左上角那个球,tomcat就识别不出来的. 1.进入项目目录,找到.project文件,打开. 2.找到...代码段,加入如下标签内容并保存: <nature>org ...

  2. ES6学习笔记二

    字符串遍历 var str = 'hello'; for(let s of str){console.log(s += ' ')} //h e l l o 字符串查找:添加了include(str,i ...

  3. MySQL ROOT密码更改

    MySQLROOT密码 # mysql -u root -p Enter password: ERROR 1045 (28000): Access denied for user 'root'@'lo ...

  4. 我的攒机(zuosi)过程

    先贴上自己的配置清单: CPU E3 1240V2 930 https://item.taobao.com/item.htm?spm=a230r.1.14.8.lds6QF&id=532971 ...

  5. sublime注释插件DocBlockr

    DocBlockr很好用,不仅仅可以自动生成注释,还可以手动编辑注释的格式. 安装方法:  Cmd+Shift+P -> Install Package -> docblockr  win ...

  6. MATLAB的PLOT函数线型设置及横坐标为字符串的代码实例

    2.横坐标为字符串的代码实例 cell={‘PLS’,’SVM’,’RF’,’NNET’,’NB’,’PLR’,’C5.0′,’PDA’,’KNN’,’GLM’,’BCT’};%分类方法yData=[ ...

  7. 基础知识《十》java 异常捕捉 ( try catch finally ) 你真的掌握了吗?

    本文转载自  java 异常捕捉 ( try catch finally ) 你真的掌握了吗? 前言:java 中的异常处理机制你真的理解了吗?掌握了吗?catch 体里遇到 return 是怎么处理 ...

  8. selenium测试框架使用xml作为对象库

    之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locato ...

  9. MyEclipse做一个注册页面,需要注意的地方。

  10. cnentos中进行bond网卡配置,一切配置无问题,就是ping不通宿主机

    服务器网口绑定   1. ifcfg-bond0   DEVICE=bond0 ONBOOT=yes IPADDR=192.168.100.64 NETMASK=255.255.255.0   2. ...