Java操作属性文件之工具类
最近空闲时间整理一下平时常用的一下工具类,重复造轮子实在是浪费时间,如果不正确或者有待改善的地方,欢迎指教...
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操作属性文件之工具类的更多相关文章
- Java操作属性文件,支持新增或更新多个属性
Java操作属性文件.支持新增或更新多个属性 一.更新或新增单个属性的方法 /** * 写入properties信息 * @param filePath 绝对路径(包含文件名称和后缀名) * @par ...
- Java 操作Redis封装RedisTemplate工具类
package com.example.redisdistlock.util; import org.springframework.beans.factory.annotation.Autowire ...
- Java操作属性文件与国际化
在前面讲到的java类集中的Hashtable中,有一个子类Properties,此类定义如下: public class Properties extends Hashtable<Object ...
- java简单的文件读写工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...
- java IO Nio 文件拷贝工具类Files
public static void main(String[] args) throws Exception { Files.copy(Paths.get("file/text.txt&q ...
- 文件类型工具类:FileTypeUtil
个人学习,仅供参考! package com.example.administrator.filemanager.utils;import java.io.File;/** * 文件类型工具类 * * ...
- java文件处理工具类
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedRead ...
- Java 文件切割工具类
Story: 发送MongoDB 管理软件到公司邮箱,工作使用. 1.由于公司邮箱限制附件大小,大文件无法发送,故做此程序用于切割大文件成多个小文件,然后逐个发送. 2.收到小文件之后,再重新组合成原 ...
- Java 压缩文件夹工具类(包含解压)
依赖jar <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons ...
随机推荐
- MySQL 子查询与连接操作笔记
SQL语句之间是可以进行连接操作的,在一些复杂的数据操作中必须用到连接操作.简单的说就是一个SQL语句的结果可以作为相连接的SQL操作的一部分.SQL结构化查询语句,子查询是指的所有的SQL操作,并非 ...
- Git学习笔记与IntelliJ IDEA整合
Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...
- .NET使用NPOI2.0导入导出Excel
NPOI开源地址:http://npoi.codeplex.com/ NPOI教程: http://tonyqus.sinaapp.com/ 具体的不在这里写了,感兴趣的可以去官网. 先来说导出的例子 ...
- 通过js调用android原生方法
有时候我们有这样一个需求,监听html中控件的一些事件.例如点击html中某个按钮,跳转到别的activity,复制某段文本. 首先是对webview的设置: myWebView = (WebView ...
- 理解Angular中的$apply()以及$digest()
$apply()和$digest()在AngularJS中是两个核心概念,但是有时候它们又让人困惑.而为了了解AngularJS的工作方式,首先需要了解$apply()和$digest()是如何工作的 ...
- ssh配置git clone简易流程
1. 生成密钥 ssh-keygen -t rsa -C "jaynaruto@qq.com" //如果只有一对密钥,建议不要修改默认的密钥名称,即一直按回车即可 此命令会在你当前 ...
- DIV+CSS布局
宽度自适应两列布局 <!DOCTYPE html> <html> <head> <meta charset="gbk"> <t ...
- JNDI
这两天研究了一下 context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别 网上关于这两个的 ...
- iOS 事件传递(Touch事件)
先总说如下: 1.当手指触摸到屏幕时,会产生UITouch对象和UIEvent对象. 2.这两个对象产生后会被传递到UIApplication管理的一个事件队列中. 3.再有UIApplication ...
- sqlserver添加主键
sqlServer中给表添加主键的sql: alter table market_media_medical_history alter column pk_id bigint not null; a ...