`

java properties工具类整理

阅读更多
保持顺序的 Java Properties 类
import java.util.Collections;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.Properties;
import java.util.Set;
 
/**
 * OrderedProperties
 */
public class OrderedProperties extends Properties {
 
    private static final long serialVersionUID = -4627607243846121965L;
     
    private final LinkedHashSet<Object> keys = new LinkedHashSet<Object>();
 
    public Enumeration<Object> keys() {
        return Collections.<Object> enumeration(keys);
    }
 
    public Object put(Object key, Object value) {
        keys.add(key);
        return super.put(key, value);
    }
 
    public Set<Object> keySet() {
        return keys;
    }
 
    public Set<String> stringPropertyNames() {
        Set<String> set = new LinkedHashSet<String>();
 
        for (Object key : this.keys) {
            set.add((String) key);
        }
 
        return set;
    }
}


根据封装好的OrderedProperties类封装
/**
 * 
 * @author xxh
 *
 */
final public class PropertiesFile {
	
	private static Map<String,Map<String,String>> files = new HashMap<String,Map<String,String>>();
	private PropertiesFile(){}
	
	/**
	 *  根据properties文件名把对应的属性值装换成map, 获取属性值直接从map中去对应的key
	 * @param file
	 * @return
	 * @throws ExcelException
	 */
	public static Map<String,String> properties2Map(String file) throws ExcelException{
		Map<String,String> map = files.get(file);
		if(map != null)//缓存中的map
			return map;
		map = new LinkedHashMap<String,String>();
		System.err.println("读取配置文件-------------------"+file);
		Properties props = null;
		try {
			props = new OrderedProperties();
			props.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("properties_config/"+file));
		} catch (IOException e) {
			throw new RuntimeException("类路径properties_config下需要放置["+file+"]文件!", e);
		}catch(NullPointerException e){
			throw new RuntimeException("类路径properties_config下需要放置["+file+"]文件!", e);
		}
		for(Object key : props.keySet()){
			map.put((String)key, (String)props.get(key));
		}
		props.clear();
		files.put(file, map);
		return map;
	}
}
分享到:
评论

相关推荐

    Java常用工具类大全,工作5年精心整理.zip

    "Java常用工具类大全,工作5年精心整理.zip"这个压缩包文件很可能包含了一位有经验的Java开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...

    java私塾学习笔记整理

    ### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...

    excel与properties文件相互转换

    Excel是一种广泛用于数据处理和分析的电子表格工具,而Properties文件则常见于Java开发中,用于存储配置信息。两者之间的相互转换能提升工作效率,特别是在处理大量配置数据时。 Excel文件(.xlsx或.xls)是...

    java汉化工具hhclass

    - **反射(Reflection)**:在某些情况下,Java汉化可能涉及到动态加载和修改类的本地化属性,这需要用到Java的反射机制。 4. **注意事项**: - 汉化时需确保不改变原文本的含义,同时注意保持代码的可读性和一致...

    JAVA写的个人博客源码Java实用源码整理learns

    解压后,可以看到项目结构、源代码文件(.java)、配置文件(如.xml或.properties)等,通过阅读和分析这些文件,可以了解实际的编程逻辑和设计模式。 总的来说,这个压缩包提供了一个实践性的学习平台,适合想要...

    基于Java的容器/背包内道具整理工具设计源码

    本项目是基于Java开发的容器/背包内道具整理工具,包含39个文件,其中包括24个Java源代码文件、5个Markdown文档、2个Gradle构建文件、2个JSON配置文件、1个gitignore文件、1个JAR打包文件、1个Properties配置文件、1...

    JAVA+发送电子邮件源码整理

    本文将详细介绍如何使用Java实现电子邮件的发送功能,并基于提供的资源进行源码整理。 首先,我们需要理解JavaMail API,这是一个用于处理邮件的开放源代码库。JavaMail API提供了与各种邮件协议(如SMTP、POP3、...

    myeclipse properties editor 插件

    其中,Properties Editor插件是MyEclipse中的一个重要组件,主要用于处理和编辑properties配置文件,使得对这类文件的操作更加便捷和高效。本文将详细解析MyEclipse Properties Editor插件的功能、使用方法以及其在...

    20个开发人员非常有用的Java功能代码(整理版)

    根据提供的文件信息,我们可以总结出以下五个重要的Java知识点: ### 1. 字符串与整型之间的转换 在Java中,我们经常需要将字符串转换为整型或将整型转换为字符串,这通常是为了数据处理或者格式化显示。下面提供...

    java 知识整理笔记

    【Java知识整理笔记】 在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),它提供了许多便捷的快捷键操作,提升开发效率。比如: 1. `Alt+/` 可以快速呼出代码补全菜单,帮助开发者快速完成代码编写。 2. ...

    Java面试题整理

    这份Java面试题整理集合主要涉及Java编程语言、多线程并发、内存管理、网络编程、框架应用和数据库相关知识,下面将详细解释每个知识点。 ### 幂等性 幂等性是指多次执行同一操作与执行一次操作具有相同的效果。...

    java框架整理

    以下是对Java框架整理的一些关键知识点: 1. **静态(static)与实例(his)依赖**: - `static` 关键字用于声明类级别的变量和方法,不依赖于类的实例,可以在没有创建对象的情况下直接调用。 - `his` 是实例...

    propertieseditor

    这款插件主要用于增强Eclipse对.properties配置文件的编辑功能,使开发者能够更方便、高效地管理和修改这类文件。 在Java开发中,.properties文件是常见的资源文件类型,用于存储应用的配置信息,如国际化(i18n)...

    java就业培训教程(个人整理)

    - **安装JDK**:包括Java运行时环境(JRE)和Java开发工具集(如javac编译器)。 - **配置环境变量**:如PATH和JAVA_HOME,确保命令行工具能够正确识别Java路径。 - **选择IDE**:例如Eclipse、IntelliJ IDEA等,有助...

    张孝祥Java就业培训教程.pdf

    6.6 Hashtable与Properties类 6.7 System类与Runtime类 6.8 Date与Calendar,DateFormat类 6.9 Math与Random类 6.10 学习API的方法 第7章 IO/输入输出 7.1 File类 7.2 RandomAccessFile类 7.3 节点流 7.4 过滤流与...

    使用testng测试java工程_操作手册整理.pdf

    【使用TestNG测试Java工程操作手册】 TestNG是一款强大的测试框架,特别适合于进行单元测试、集成测试和功能测试。...确保正确配置和使用这些工具,能够有效地提高你的Java项目的测试质量和效率。

    用poi将Excel数据导入数据库/java tools.jar动态类的生成

    为了实现这个功能,你需要创建一个Java类,该类使用`FileReader`读取配置文件,然后使用如`Properties`类解析文件内容。之后,你可以使用这些配置信息来构建`String`对象,代表Java源代码。最后,通过`...

    软件著作权源代码自动整理2023

    它适用于各类后缀文件,这表明无论你使用的是哪种编程语言(如C#、Java、Python等),该工具都能处理相关的源代码文件,提供了广泛的兼容性。 标签“软件/插件”揭示了这个工具可能是作为一个独立的软件程序或者是...

    PropertiesEditor

    PropertiesEditor是一款专为MyEclipse集成开发环境设计的properties文件编辑工具。MyEclipse作为一款强大的Java EE集成开发环境,提供了丰富的功能,包括代码编辑、调试、发布等。然而,在处理properties文件时,...

Global site tag (gtag.js) - Google Analytics