保持顺序的 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开发者在五年工作中积累的各种实用工具类,这些工具类能够极大地提高开发效率,简化代码编写。以下是对可能包含的知识点进行...
### Java私塾学习笔记整理 #### 第一章:Java入门 **一、Java是什么?** Java是一种广泛使用的高级编程语言,由Sun Microsystems于1995年推出。它旨在为跨平台开发提供一种通用的语言环境,使开发者能够在任何...
Excel是一种广泛用于数据处理和分析的电子表格工具,而Properties文件则常见于Java开发中,用于存储配置信息。两者之间的相互转换能提升工作效率,特别是在处理大量配置数据时。 Excel文件(.xlsx或.xls)是...
- **反射(Reflection)**:在某些情况下,Java汉化可能涉及到动态加载和修改类的本地化属性,这需要用到Java的反射机制。 4. **注意事项**: - 汉化时需确保不改变原文本的含义,同时注意保持代码的可读性和一致...
解压后,可以看到项目结构、源代码文件(.java)、配置文件(如.xml或.properties)等,通过阅读和分析这些文件,可以了解实际的编程逻辑和设计模式。 总的来说,这个压缩包提供了一个实践性的学习平台,适合想要...
本项目是基于Java开发的容器/背包内道具整理工具,包含39个文件,其中包括24个Java源代码文件、5个Markdown文档、2个Gradle构建文件、2个JSON配置文件、1个gitignore文件、1个JAR打包文件、1个Properties配置文件、1...
本文将详细介绍如何使用Java实现电子邮件的发送功能,并基于提供的资源进行源码整理。 首先,我们需要理解JavaMail API,这是一个用于处理邮件的开放源代码库。JavaMail API提供了与各种邮件协议(如SMTP、POP3、...
其中,Properties Editor插件是MyEclipse中的一个重要组件,主要用于处理和编辑properties配置文件,使得对这类文件的操作更加便捷和高效。本文将详细解析MyEclipse Properties Editor插件的功能、使用方法以及其在...
根据提供的文件信息,我们可以总结出以下五个重要的Java知识点: ### 1. 字符串与整型之间的转换 在Java中,我们经常需要将字符串转换为整型或将整型转换为字符串,这通常是为了数据处理或者格式化显示。下面提供...
【Java知识整理笔记】 在Java开发中,Eclipse是一款广泛使用的集成开发环境(IDE),它提供了许多便捷的快捷键操作,提升开发效率。比如: 1. `Alt+/` 可以快速呼出代码补全菜单,帮助开发者快速完成代码编写。 2. ...
这份Java面试题整理集合主要涉及Java编程语言、多线程并发、内存管理、网络编程、框架应用和数据库相关知识,下面将详细解释每个知识点。 ### 幂等性 幂等性是指多次执行同一操作与执行一次操作具有相同的效果。...
以下是对Java框架整理的一些关键知识点: 1. **静态(static)与实例(his)依赖**: - `static` 关键字用于声明类级别的变量和方法,不依赖于类的实例,可以在没有创建对象的情况下直接调用。 - `his` 是实例...
这款插件主要用于增强Eclipse对.properties配置文件的编辑功能,使开发者能够更方便、高效地管理和修改这类文件。 在Java开发中,.properties文件是常见的资源文件类型,用于存储应用的配置信息,如国际化(i18n)...
- **安装JDK**:包括Java运行时环境(JRE)和Java开发工具集(如javac编译器)。 - **配置环境变量**:如PATH和JAVA_HOME,确保命令行工具能够正确识别Java路径。 - **选择IDE**:例如Eclipse、IntelliJ IDEA等,有助...
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工程操作手册】 TestNG是一款强大的测试框架,特别适合于进行单元测试、集成测试和功能测试。...确保正确配置和使用这些工具,能够有效地提高你的Java项目的测试质量和效率。
为了实现这个功能,你需要创建一个Java类,该类使用`FileReader`读取配置文件,然后使用如`Properties`类解析文件内容。之后,你可以使用这些配置信息来构建`String`对象,代表Java源代码。最后,通过`...
它适用于各类后缀文件,这表明无论你使用的是哪种编程语言(如C#、Java、Python等),该工具都能处理相关的源代码文件,提供了广泛的兼容性。 标签“软件/插件”揭示了这个工具可能是作为一个独立的软件程序或者是...
PropertiesEditor是一款专为MyEclipse集成开发环境设计的properties文件编辑工具。MyEclipse作为一款强大的Java EE集成开发环境,提供了丰富的功能,包括代码编辑、调试、发布等。然而,在处理properties文件时,...