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类等,使 ...
随机推荐
- js实现多行图片点击(自动)左右无缝轮播特效
/*效果图*/ HTML: <div class="scroll"> <div class="picbox"> ...
- DC平衡双向控制解串器 转接IC GM8914:FPD-LINK III转LVTTL芯片
1 概述 GM8914型DC平衡双向控制解串器,其主要功能是实现将2.8Gbps高速串行数据转换成10或12位并行控制信号,并同步输出一路时钟信号:同时低速通道将芯片控制信息调制到高速差分信号上传输给 ...
- Spark入门实战
星星之火,可以燎原 Spark简介 Spark是一个开源的计算框架平台,使用该平台,数据分析程序可自动分发到集群中的不同机器中,以解决大规模数据快速计算的问题,同时它还向上提供一个优雅的编程范式,使得 ...
- 学习面向对象编程OOP 第二天
好,今天继续学习这个面向对象编程.(根据博客园 小炒花生米写的博客学习而来) 一,封装性 a.把对象的全部属性和全部服务(方法)结合在一起,形成一个不可分割的独立单元 =>对象 b.信息隐蔽,尽 ...
- VS2017 Cordova Ionic2 移动开发-环境搭建
1. 文档概述 本文档用于说明Visual Studio 2017下使用 Ionic 2进行跨平台开发的运行环境配置. 2. 安装环境 Windows10 3. 安装 Visual Studio 20 ...
- ValueStack
1.把list集合压入栈顶 /** * * 查找所有的用户 * @return */ public String findAll() { List<User> allUser = user ...
- CSS开发框架技术OOCSS编写和管理CSS的方法
目前最流行的CSS开发框架技术当属OOCSS,尽管还有其他类似技术(如BEM).这些方法试图对CSS采用面向对象的编程原则.样式语言与面向对象的设计原则在概念之间存在一定的问题.欠缺经验的人员可能不会 ...
- Mac 搭建svn本地服务端
首先建立一个svn目录,位置可以随意,以桌面为例 $ mkdir ~/Desktop/svn 新建一个名为proj的目录作为一个repository $ cd ~/Desktop/svn $ mkdi ...
- xmlplus 组件设计系列之五 - 选项卡
这一章将设计一个选项卡组件,选项卡组件在手持设备上用的比较多,下面是一个示意图: 选项卡组件的分解 在具体实现之前,想像一下目标组件是如何使用的,对于设计会有莫大的帮助.通过观察,可以将选项卡组件分为 ...
- stl_container容器和std_algorithm算法相同的函数
八.算法和容器中存在的功能相同的函数: 8.1.array: 8.1.1.fill. 1.在array中:void fill (const value_type& val); 2.在algor ...