java.util.Properties工具类
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Properties; /**
* @Description 加载属性配置文件工具类
* @Package com.viathink.utils.PropertiesFilesUtils.java
* @date 2012-5-16 下午3:18:19
* @version V1.0
*/
public class PropertiesFilesUtils {
private static final PropertiesFilesUtils propertiesFiles = new PropertiesFilesUtils(); /**
* 存放所有的属性配置文件对象
*/
private Map<String, Properties> propertiesMap = new HashMap<String, Properties>(); private PropertiesFilesUtils() {
} /**
* 获得属性配置文件工具类的实例对象
*
* @return PropertiesFilesUtils 对象
*/
public static PropertiesFilesUtils getInstance() {
return propertiesFiles;
} /**
* 获取Properties文件对象
*
* @param PropertiesFileName
* @return
* @throws IOException
*/
public synchronized Properties getProperties(String propertiesFileName) throws IOException {
if (propertiesFileName == null || "".equals(propertiesFileName)) {
throw new IllegalArgumentException("The propertiesFileName is illegal argument!");
}
Properties prop = propertiesMap.get(propertiesFileName);
if (prop == null) {
prop = new Properties();
//注意这个文件的InputStream,这里要修改
InputStream is = this.getClass().getResourceAsStream(propertiesFileName);
if (is == null)
throw new FileNotFoundException("The file \"" + propertiesFileName + "\" is not found!");
prop.load(is);
propertiesMap.put(propertiesFileName, prop);
}
return prop;
} /**
* 将properties文件写到磁盘上
*
* @param properties
* 属性文件
* @param propertiesFilePath
* 要保存的路径
* @throws IOException
*/
public void writePropertiesFile(Properties properties, String propertiesFilePath) throws IOException {
if (properties == null || propertiesFilePath == null || "".equals(propertiesFilePath))
throw new IllegalArgumentException("The props or propertiesFilePath is illegal argument!");
FileWriter fw = new FileWriter(propertiesFilePath);
properties.store(fw, null);
fw.flush();
fw.close();
} /**
* 更新属性文件的某个属性,并保存到磁盘上
*
* @param properties
* 要更新的属性文件
* @param propertyName
* 属性名称
* @param propertyValue
* 属性值
* @param filePath
* 保存的文件路径
* @throws IOException
*/
public void updatePropertiesFile(Properties properties, String propertyName, String propertyValue, String filePath)
throws IOException {
if (properties == null || propertyName == null || "".equals(propertyName) || propertyValue == null
|| "".equals(propertyValue) || filePath == null || "".equals(filePath))
throw new IllegalArgumentException("The parameters is illegal argument!");
properties.setProperty(propertyName, propertyValue);
writePropertiesFile(properties, filePath);
} /**
* 根据属性配置文件名称和属性名称获取属性配置值
*
* @param propertiesFileName
* 属性配置文件名称
* @param propertyName
* 属性名称
* @return 属性值
* @throws IOException
*/
public String getProperty(String propertiesFileName, String propertyName) throws IOException {
Properties prop = getProperties(propertiesFileName);
return prop.getProperty(propertyName);
} /**
* 获得Properties对象列表
*
* @return
*/
public List<Properties> getProperties() {
if (propertiesMap.isEmpty())
return null;
return new LinkedList<Properties>(propertiesMap.values());
} /**
* 获得属性对象Map
*
* @return
*/
public Map<String, Properties> getPropertiesMap() {
return propertiesMap;
} public static void main(String[] args) throws IOException {
String realPath="p.txt";
PropertiesFilesUtils pfu = PropertiesFilesUtils.getInstance();
Properties pro = pfu.getProperties(realPath);
Properties pro1 = pfu.getProperties(realPath);
Properties pro2 = pfu.getProperties(realPath);
Properties pro3 = pfu.getProperties(realPath); System.out.println(pro == pro1);
System.out.println(pro == pro2);
System.out.println(pro == pro3); System.out.println(pfu.getProperties().size());
System.out.println(pfu.getPropertiesMap().size());
System.out.println(pro.getProperty("a"));
pfu.updatePropertiesFile(pro, "messge.type", "image", realPath);
System.out.println(pro.getProperty("messge.type"));
}
}
文本的内容是
aaarticlea/png;base64,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" alt="" />
输出
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAMwAAACvCAIAAAA+IKZRAAADRElEQVR4nO3dwW3bShRAUdWlglgPS3AVbEZNqANmIYWmYhmhzFx/fPOcTQyKEbK4mGGGD/Bpnufr9Xq9Xt/e3q6/rX+GnU4ioyYyciIjJzJyIiMnMnIiIycyciIjJzJyIiMnMnIiIycyciIjJzJyIiMnMnIiIycycn+J7A12+0tkM+wmMnIiIycyctsju4zn0zD9V/9O/sdERm5TZJfxfHpwHi/zPM/TcBrG5bNbgdOwpLjOcvUVSj2aXSvZNCy9LXE9jWx1cZ6G5e9wDHsj+7AsPYvsz5VQZMfyLZFZvI7thSOMj6l8EtntrtvytWyXHsWO65Vzsvddb/Xg/yGd5a7zOA7PHvytakfjMJacyMiJjJzIyImMnMjIiYycKQxyIiNn1IecUR9yRn3IGfUhZ9SHnFEfcg5jyYmMnMjIiYycyMiJjJzIyJnCICcyckZ9yBn1IWfUh5xRH3JGfcgZ9SHnMJacyMiJjJzIyImMnMjIiYzcayf+Xm/zBRsju53jm/bhK17aLkXGV4iMnMjIiYycyMht/9/lA6mxncNYciIjJzJyIiMnMnIiIycyckZ9yBn1Iee1EjmRkRMZOZGRExk5oz7kHMaSExk5kZETGTmRkRMZOZGR2znqs/0ix7Vn1Gf7RQ5t/2ul7Rc5KJGRExk5kZETGbk9oz7bL3JoDmPJiYycyMiJjJzIyImM3Mu/g9yRBK8SGTnbJbmtkS0H+ctKdhnP53EcTqfT/Y/7R+sj//dl7/FFwHm83L/Ci4ED+Pq7y9+b5zSc7mOK93Se3H6bZJwff5yG9y9b3cCPsy+yYVr6eI/sYdH6PLLVMrZe3fh5/nlkq55Wt6/C+7ik8cP968gu4/m0XtGGaZ7nJ1vp/XOPYkewMbI/97Zh+nS7XBat8zgOT1ay1VP++lutaj/XtxxhPK5Z9smj+f7I7JKH8z2HsQ+7rWXsaJz4kxMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGTmRkRMZOZGRExk5kZETGblf4wzO8UeM05EAAAAASUVORK5CYII=" alt="" />
java.util.Properties工具类的更多相关文章
- 使用java.util.Properties工具制作自定义访问配置文件信息
import ch.qos.logback.classic.Logger; import org.slf4j.LoggerFactory; import java.io.IOException; im ...
- java.util.UUID工具类
生成数据表的主键Id会用到此工具类 /** * <获取主鍵> * <获取32位UUID> * @return * @see [类.类#方法.类#成员] */ public st ...
- Java Properties工具类详解
1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...
- java学习-加载.properties工具类
javaWeb项目,要加载xxx.properties或其它如.txt, .md后缀的文本文件 文本内容有两种格式 key:value或者key=value 诸如Spring框架,Jfinal框架,都 ...
- 【Java笔记】配置文件java.util.Properties类的使用
配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...
- 方便好使的java.util.Properties类
今天偶然碰到这个类,发现jdk中这些平时不大用到的类还挺好玩儿的,用起来也特别实在方便,随便写点记录下. java.util.Properties是对properties这类配置文件的映射.支持key ...
- 使用java.util.Properties类读写配置文件
J2SE 1.5 以前的版本要求直接使用 XML 解析器来装载配置文件并存储设置,虽说也并非难事,相比 java.util.Properties却要做额外的解析工作.而java.util.Proper ...
- java.util.Properties类 学习笔记
学习目标: 1.认识properties文件,理解其含义,会正确创建properties文件. 2.会使用java.util.Properties类来操作properties文件. 3.掌握相对路 ...
- JavaSE-基础语法(二)-系统类(java.lang.*)和工具类(java.util.*)
系统类(java.lang.*)和工具类(java.util.*) 一.系统类(java.lang.*) 这个包下包含java语言的核心类,如String.Math.System和Thread类等,使 ...
随机推荐
- WCF和ASP.NET Web API在应用上的选择
小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/shareto ...
- C# 遍历泛型集合
/// <summary> /// 遍历泛型 /// </summary> /// <typeparam name="T"></typep ...
- C语言本身并不提供输入输出语句
C语言本身并不提供输入输出语句,输入和输出操作是由函数来实现的.在C标准函数库中提供了一些输入输出函数,例如,printf函数和scanf函数.在使用他们时,千万不要误认为他们是C语言提供的“输入输出 ...
- 国付宝ecshop,shopex,shopnc在线支付接口,php版本支付接口开发
最近应一个客户的要求,给他的一个ecshop商城开发国付宝在线支付接口.国付宝估计大家比较陌生,但是他集成了很多银行的一些网银接口,所以比较方便.号称国家级的第三方支付平台.最近有增加了域名验证,就是 ...
- Broker节点
在druid集群环境中 broker节点的作用是查询.它知道metadata 通过zookeeper发送到了集群中的哪个节点,从而能够准确的查询到.broker也把各个节点的结果汇聚到一个节点中.On ...
- Java设计模式:代理模式(一)
问题的提出 现在生活中,常常在微信朋友圈里面看到代购的信息,你想在国外买什么,香港买什么,但是又懒得自己过去,于是常常委托别人帮忙买奶粉买那啥的.这类问题的缘由是因为客户和原产地没有直接的接触,所以需 ...
- Java 中的接口有什么作用?好处?
接口的作用就是把使用接口的人和实现接口的人分开,实现接口的人不必要关心谁去使用,而使用接口的人也不用关心谁实现的接口,由接口将他们联系在一起. 很多JAVA初级程序员对于接口存在的意义很疑惑.不知道接 ...
- 浅析被element.style所覆盖的样式
近日,我在用swiper插件写一个手游官网时,出现了一个很奇怪的问题.问题如下 如上图所示,这里是一个可以左右拖动的ul,每一个英雄介绍都是一个li标签,上图这是正常的情况.可是,它会随机不定期不定时 ...
- webUI自动化测试框架---”pyswat“介绍
webUI自动化测试框架---"pyswat"介绍 大家好我是lamecho 辣么丑,今天给大家介绍一款web自动化测试框架pyswat. "pyswat"是 ...
- webstorm html碎片整理功能
我们用字符串形式写html模板时,或者向某标签添加html内容时,如下,如果这个str更加的长,一旦里面少了一个单引号,少了一个加号,基本报错还看不懂,一脸懵逼... // 假定后台传给我们的数据为 ...