Properties extends Hashtable 。
也就是说,Properties 类也是以“键值对”(key - value) 形式存储。一般都写成 xxx.properties 文件,但是该类还有 loadFromXML 和 storeToXML 的两个方法,那么也就是说 这种形式可以存储成 XML 文件,那么 XML 文件里的格式有该怎么写呢?API 里的说明是:
loadFromXML(InputStream)
和 storeToXML(OutputStream,
String, String)
方法按简单的 XML 格式加载和存储属性。默认使用 UTF-8
字符编码,但如果需要,可以指定某种特定的编码。XML 属性文档具有以下 DOCTYPE 声明:
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
注意,导入或导出属性时不 访问系统 URI (http://java.sun.com/dtd/properties.dtd);该系统 URI 仅作为一个唯一标识 DTD 的字符串: <?xml version="1.0" encoding="UTF-8"?>
<!-- DTD for properties -->
<!ELEMENT properties ( comment?, entry* ) >
<!ATTLIST properties version CDATA #FIXED "1.0">
<!ELEMENT comment (#PCDATA) >
<!ELEMENT entry (#PCDATA) >
<!ATTLIST entry key CDATA #REQUIRED>
但这样子的格式很不容易看明白到底是什么。下面做个测试看看这个格式是什么样子的。
1、创建一个文件,名为 a.porperties文件内容的格式如下
name=aaa
password=bbb
读取该文件信息代码,如下
Properties pps = new Properties();
try {
pps.load(new FileInputStream("a.properties"));
Enumeration names = pps.propertyNames();
while (names.hasMoreElements()) {
String strKey = (String) names.nextElement();
String strValue = pps.getProperty(strKey);
System.out.println(strKey + "=" + strValue);
}
} catch (Exception e) {
e.printStackTrace();
}
将该properties文件转为XML文件代码,如下
pps.storeToXML(new FileOutputStream("bbb.xml"), "agreal", "GB2312");
生成的XML文件如下
<?xml version="1.0" encoding="GB2312" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>agreal</comment>
<entry key="password">bbb</entry>
<entry key="name">aaa</entry>
</properties>
再试试读取该文件内容,代码如下
Properties pps = new Properties();
try {
pps.loadFromXML(new FileInputStream("bbb.xml"));
Enumeration names = pps.propertyNames();
while (names.hasMoreElements()) {
String strKey = (String) names.nextElement();
String strValue = pps.getProperty(strKey);
System.out.println(strKey + "=" + strValue);
}
} catch (Exception e) {
e.printStackTrace();
}
事情就是这样发生的。
从生成的 XML 文件来看,便可知道 API 给的格式是个怎样的了。
分享到:
相关推荐
### Java.util.logging.Logger 使用详解 #### 一、创建Logger对象 在Java中,`java.util.logging.Logger` 是标准的日志框架之一,它提供了基础的日志记录功能。为了使用这一功能,首先需要获得 `java.util.logging...
以上只是java.util包中的一部分重要组件,实际上,这个包还包含更多其他类和接口,如Enumeration、Stack、Properties等,它们都在各自的领域提供了丰富的功能。掌握java.util包的使用是每个Java开发者必备的技能,能...
Java.util包是Java标准库中的核心包之一,它包含了大量用于日常编程的工具类和接口。这个包在Java 2版本中得到了显著增强...通过熟练掌握和使用java.util包中的类和接口,开发者能够更加高效地处理数据和实现复杂逻辑。
在实际应用中,我们可以使用`SafeProperties`类替换`java.util.Properties`,确保文件的格式一致性。例如: ```java SafeProperties props = new SafeProperties(); props.load(new FileInputStream("config....
在Java Web开发中,我们经常会遇到“org.apache.jasper.JasperException: java.util.MissingResourceException”这样的错误。这个异常通常发生在尝试访问一个不存在的资源文件时,比如国际化(i18n)配置文件。本文...
本篇文章将深入探讨如何使用Java中的`java.util.Properties`类来读取这些配置文件,包括基本用法、方法解释、代码示例及测试案例。 `Properties`类是Java标准库的一部分,专门设计用来处理键值对的存储,常用于存储...
`java.util`包是Java语言中不可或缺的一部分,它提供的各种工具类和接口极大地丰富了Java的编程功能,使得开发者能够更加高效地完成各种任务,从简单的日期时间处理到复杂的事件监听和数据结构管理。理解并掌握`java...
### 方法一:使用`java.util.Properties`类的`load()`方法 这是最直接的方法,通过创建`Properties`对象并调用其`load()`方法,传入一个`InputStream`实例来加载Properties文件。例如: ```java import java.io....
在Java中,我们可以使用`java.util.Properties`类来读取和操作这些文件。以下是一个简单的示例,展示如何读取`.properties`文件: ```java import java.io.FileInputStream; import java.io.IOException; import ...
目的是在属性文件 (java.util.Properties) 中应用一些验证检查,以防止部署工件时出现错误和问题。 如果检查失败,则构建过程失败。 示例:在属性 vaule 末尾有一个空格并且 java 代码不修剪会发生什么? 特征: ...
log4j.properties ,commons-logging-1.2.jar,log4j-1.2.16.jar,三个文件一起组成一个完整的日志输出,Apache的Common Logging只是一个高层的日志框架,本身并没有实现真正的写日志能力,而是依赖其它的日志系统如...
使用`java.util.Properties.load()` 这种方法是通过`InputStream`加载一个`Properties`对象,然后使用`load()`方法来读取`Properties`文件中的内容。这种方法适用于任何类型的`InputStream`。 **代码示例:** ``...
1. 使用`java.util.Properties`类 `Properties`类是Java提供的一种内置机制,用于处理属性列表。它继承了`Hashtable`类,提供了加载和保存属性列表到流中的功能。 ```java import java.io.FileInputStream; ...
#### 一、使用 `java.util.Properties` 类的 `load()` 方法 这是最常用的方法之一。通过创建一个输入流,然后利用 `Properties` 对象的 `load()` 方法加载数据。 ```java import java.io.FileInputStream; import ...
### 方法一:使用`java.util.Properties` Java标准库提供了一个`Properties`类,专门用于处理`.properties`文件。以下是一个简单的示例: ```java import java.io.IOException; import java.io.InputStream; ...
17. **`java.util.Properties`**: 用于存储配置信息,如XML或Properties文件。 18. **`java.util.Random`**: 生成随机数。 19. **`java.util.Comparator`**: 定义自定义排序规则。 20. **`java.util.stream.*`** ...
在spring中,我们可以使用Java.util.Properties类型的属性来存储和管理配置信息,而今天我们要讨论的是如何将这些属性赋值给spring bean。 在spring中,我们可以使用标签来为Bean设置属性,而对于Properties类型的...
4. **`java.util.Date`** 和 **`java.time`** 包:处理日期和时间,`java.time`包是Java 8引入的新API,更强大且易于使用。 5. **`java.util.Random`**:生成随机数,适用于各种随机算法或模拟场景。 6. **`java....
14. **`java.util.Properties`**:用于读写配置文件,常用于存储应用程序的配置参数。 15. **`java.util.PriorityQueue`**:优先队列,内部实现为堆,可以自动维护元素的排序。 以上仅是部分可能包含的工具类,...
1. **加载Properties文件**:你可以使用`java.util.Properties`类来加载文件。首先,创建一个Properties对象,然后调用`load()`方法加载文件。这通常在类的初始化或静态块中完成。 ```java Properties prop = new ...