java属性文件properties常用操作工具类

简介: 对于java.util.Properties类,通常我们只需要做到以下3个学习目标:<br> 1、认识properties文件,理解其含义,会正确创建properties文件。<br> 2、会使用java.util.Properties类来操作properties文件。<br> 3、掌握相对路径,能正确书写一个properties文件的相对路径。<br> 而在平时的工作中,会遇到各
对于java.util.Properties类,通常我们只需要做到以下3个学习目标:
1、认识properties文件,理解其含义,会正确创建properties文件。
2、会使用java.util.Properties类来操作properties文件。
3、掌握相对路径,能正确书写一个properties文件的相对路径。
而在平时的工作中,会遇到各种各样的需求,以下是一个封装。
package com.herman.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * properties 文件操作工具类
 * @author Herman.Xiong
 * @date 2015-1-29 下午04:27:19
 * @version V3.0
 * @since jdk 1.6,tomcat 6.0
 */
public class PropertiesUtil {
	private static Properties prop = new Properties(); 
	private static InputStream in;
	private static final String path="src/com/herman/config/conf.properties";
	
	/**
	 * 加载
	 */
	static{
		init();
	}
	
	/**
	 * 初始化
	 */
	private static void init(){
		try {
			in=new FileInputStream(new File(path));
			prop.load(in);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 关闭InputStream
	 * @author Herman.Xiong
	 * @date 2015-1-30 上午09:41:04
	 */
	private static void close(){
		try {
			if(null != in)
				in.close(); 
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 重新加载Properties
	 * @author Herman.Xiong
	 * @date 2015-1-30 上午09:41:04
	 */
	public static void reload(){
		close();
		prop.clear();//清除所有装载的 键 - 值对
		init();
	}
	
	/**
	 * 删除所有键值
	 * @author Herman.Xiong
	 * @date 2015-1-30 上午09:42:04
	 */
	public static void removeAll(){
		close();
		File file=new File(path);
		if(file.exists())
			file.delete();
		try {
			if(!file.exists())
				new File(path).createNewFile();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 输出所有内容到控制台
	 * @author Herman.Xiong
	 * @date 2015-1-30 上午09:42:33
	 */
	public static void outList(){
		prop.list(System.out);
	}
	
	public static void main(String[] args) {
		System.out.println(prop.getProperty("abc"));
		outList();
		reload();
		outList();
		removeAll();
		System.out.println("重新加载.....");
		outList();
	}
}

欢迎大家关注我的博客!如有疑问,请加QQ群:135430763共同学习!
目录
相关文章
|
30天前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
30 1
|
1月前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
4天前
|
Java 关系型数据库 MySQL
Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
【4月更文挑战第12天】Elasticsearch【问题记录 01】启动服务&停止服务的2类方法【及 java.nio.file.AccessDeniedException: xx/pid 问题解决】(含shell脚本文件)
28 3
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1
|
6天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。
|
26天前
|
JSON Java 网络安全
Java使用hutool工具类发送网络请求
Java使用hutool工具类发送网络请求
41 0
|
1月前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
93 3