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类等,使 ...
随机推荐
- CentOS下安装node
下载 wget https://nodejs.org/dist/v7.7.4/node-v7.7.4-linux-x64.tar.gz 解压 tar -zxvf node-v7.7.4-linux-x ...
- Struts2+Hibernate框架探险
写这篇文章的目的 了解 JavaWeb 开发的人都知道SSH和SSM框架,前段时间开始接触 JavaWeb 开发,看了几个教学视频后就想上手构建一个小型 Web项目,可在跟着视频敲代码当中,使用 St ...
- Java基础学习(五)—Collection
一.Collection概述 1.数组和集合的区别 (1)长度区别 数组长度是固定的,集合长度是可变的. (2)存储内容区别 数组只能存放同一种类型的元素(基本类型/引用类型). ...
- Ubuntu离线安装Sogou拼音(附老版本安装&输入法自启动)
跨平台系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#linux 离线安装的基础可以看看这篇文章的 前期准备工作 http://www.cnbl ...
- C++中的类继承(1) 三种继承方式
继承是使代码可以复用的重要手段,也是面向对象程序设计的核心思想之一.简单的说,继承是指一个对象直接使用另一对象的属性和方法.继承呈现了 面向对象程序设 计的层次结构, 体现了 由简单到复杂的认知过程. ...
- SEO -- WordPress怎设置百度站长链接自动提交
百度站长平站更新了主动推送(实时)推送的方式,受到了广大站长的好评,但是对于使用WordPress的网站来说怎么设置自动提交呢,在这里介绍一种比较简单且有效的方法.我们可以使用 WP BaiDu Su ...
- 迭代的是人,递归的是神。——L. Peter Deutsch
递归,数学里面叫recursion,其实就是递推关系. 中学数学有一部分其实就是递归的非常典型的做法,不过老师们都没怎么扩展,新课标必修五第二章数列应该算是我们第一次接触递推的概念了. 其实说到递归 ...
- 实现五种分组加密模式ECB,CBC,CFB,OFB,CTR
没什么好说的,简单无脑! #include<iostream>using namespace std; int ECB(){ int duan[4]; int messageLen = 1 ...
- 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)
缺点:Service层面把Dao层面的开启事务操作完成了1.自行创建C3P0Uti,account数据库,导入Jar包 2.Dao层面 接口: package com.learning.dao; im ...
- Azure WAF防火墙工作原理分析和配置向导
Azure WAF工作原理分析和配置向导 本文博客地址为:http://www.cnblogs.com/taosha/p/6716434.html ,转载请保留出处,多谢! 本地数据中心往云端迁移的的 ...