1 Properties类的介绍
Properties类是Hashtable类的子类,正如它的名字暗示的,该对象在处理属性文件时特别方便(Windows操作平台上的ini文件就是一种属性文件)。Properties类可以把Map对象和属性文件关联起来,从而可以把Map对象中的key-value对写入属性文件,也可以把属性文件中的属性名=属性值加载到Map对象中。由于属性文件里的属性名、属性值只能是字符串类型,所以Properties里的key、value都是字符串类型,该类提供了如下三个方法来修改Properties里的key、value值。
- String getProperty(String key):获取Properties中指定属性名对应的属性值,类似于Map的get(Object key)方法。
- String getProperty(String key, String defaultValue):该方法与前一个方法基本相似。该方法多一个功能,如果Properties中不存在指定key时,该方法返回默认值。
- Object setProperty(String key, String value):设置属性值,类似Hashtable 的put方法。
2 代码示例
import java.util.*; import java.io.*; public class PropertiesTest { public static void main(String[] args) throws Exception { Properties props = new Properties(); // 向Properties中增加属性 props.setProperty("username" , "cakin24"); props.setProperty("password" , "123456"); // 将Properties中的key-value对保存到a.ini文件中 props.store(new FileOutputStream("a.ini") , "comment line"); //① // 新建一个Properties对象 Properties props2 = new Properties(); // 向Properties中增加属性 props2.setProperty("gender" , "male"); // 将a.ini文件中的key-value对追加到props2中 props2.load(new FileInputStream("a.ini") ); //② System.out.println(props2); } }
3 运行结果
{password=123456, gender=male, username=cakin24}
上面程序还在当前路径下生成了一个a.ini文件,文件内容如下:
#comment line
#Tue Sep 13 20:33:03 CST 2016
password=123456
username=cakin24
4 代码分析
上面的程序演示了Properties类的用法,其中①代码处理将Properties对象中的key-value对写入a.ini文件中;②代码处则从a.ini文件中读取key-value对,并添加到props2对象中。
相关推荐
Properties是Java中用于管理配置文件的类,它继承自Hashtable类,可以存储键值对,并提供了读写配置文件的功能。
3. `loadFromXML(InputStream)` 和 `storeToXML(OutputStream, String, String)`:除了普通的文本格式,Properties类还支持XML格式的属性文件。这两个方法分别用于从XML输入流加载和向XML输出流写入属性。 4. `...
我们要做的第一步是要将文件读取到Properties类对象中,由于load有一个参数是InputStream,所以我们可以用 InputStream的子类FileInputStream将属性文件读取到Properties对象中,知道prop.properties的路径,我们...
Java代码实现对properties文件有序的读写的示例 本篇文章主要介绍了Java代码实现对properties文件有序的读写的示例。Properties文件是一种常用的配置文件格式,用于存储应用程序的配置信息。然而,在读写Properties...
然后,`@ConfigurationProperties`注解的`prefix`应该设为`myProps`,并且在`YmlConfig`类中,属性名需要与配置文件中的键匹配。 总的来说,Spring Boot通过`@ConfigurationProperties`和`@Component`注解使得从`...
在处理Properties文件时,还需要注意异常处理,如文件未找到、读写权限问题等。此外,为了提高性能和减少资源消耗,建议使用try-with-resources语句来自动关闭输入/输出流。 综上所述,Java Properties文件是Java...
默认情况下,`Properties`类使用平台默认的字符集读写文件。如果需要自定义字符集,可以在`store`和`load`方法中传入编码名。 ```java p.store(new FileOutputStream("shawearn.properties"), "UTF-8 encoded", ...
对于Properties集合,我们可以通过`Properties`类的`load()`方法从文件加载数据,`store()`方法将数据保存回文件。此外,它的`getProperty()`方法用于获取指定键对应的值,`setProperty()`方法用于设置键值对。...
- **`.xml`文件**:在JDK 1.5及以后版本,`Properties`类还支持XML格式的属性文件读写。 **3. 主要方法** - **加载属性文件**: - `load(InputStream inStream)`:从指定的输入流中加载属性列表。 - `...
- **Properties类**:Java中的`Properties`类是一个用于存储字符串键值对的特殊集合类,主要用于处理文本格式的属性列表(如`.properties`文件)。它是`Hashtable`的一个子类,并添加了用于处理属性文件的方法。 - *...
本项目是一款基于Java和HTML实现的轻量级、高效Excel读写工具设计源码,总文件量为278个,其中包括225个Java源文件、24个xlsx文件、9个txt文件、6个png文件、3个jpg文件、3个xml文件、2个properties文件、1个...
- System.Collections:提供各种集合类,如ArrayList和Dictionary。 - System.IO:包含了文件和目录操作的类。 - System.Net:支持网络通信,如HttpWebRequest和HttpWebResponse。 - System.XML:处理XML文档的...
2. **注册属性**: 创建好属性类后,需要将其添加到`PropertyDescriptorCollection`中,这是`PropertyGrid`用来管理其属性的集合。可以使用`PropertyDescriptorCollection.Add()`方法来完成。 ```csharp var ...
* Properties类与IO流结合使用:将properties集合中的属性集写入到文件中实现持久化,或者从.properties配置文件中读取属性集到properties集合中。 四、 Properties类在实际应用中的作用 * 配置文件读写:...
在ESRI.ArcGIS.Compatibility库中,`ShapefileWorkspaceFactory`类用于打开Shp文件,`FeatureClass`类可以用来获取几何对象和属性数据。然而,这个库可能需要ArcObjects组件,这在某些情况下可能不便于使用或需要...
"DateandPropertiesutil"这个标题暗示我们这是一个集合了日期处理和读取属性文件功能的工具类。这样的工具类对于提高代码的可维护性和减少冗余是非常有帮助的。 首先,让我们详细了解一下属性文件(Properties)。...
Java 语言的学生信息管理系统是一个基于集合类实现的简单应用程序,用于管理学生的各项信息,如姓名、性别、年龄、专业等。在这个系统中,主要使用了 `ArrayList` 集合来存储学生对象,并通过一系列的方法来实现添加...
- **`Properties`**:特殊的`Map`实现,主要用于读写属性文件。 - **`Hashtable`**:线程安全的`Map`实现,不支持`null`键或值。 #### 迭代器:遍历集合的工具 为了方便遍历集合中的元素,Java集合框架提供了迭代...
4. **commons-io-1.2.jar**:包含各种I/O操作的工具类,如文件读写,可能用于读取和写入XML或Properties文件。 5. **commons-logging.jar**:提供一个通用的日志接口,可以适配多种日志实现,用于记录解析过程中的...
源码可能包含几个核心类,例如`IniFile`、`Section`、`Property`和`Properties`,它们分别代表ini文件的整体、其中的各个段落、属性键值对以及属性的集合。 【标签】"init文件 源码 init 文件 property"进一步明确...