Java Properties类
1 什么是Java Properties类
Properties对象包含key-value对,key和value都必须是字符串类型。java.util.Properties类是Hashtable的子类。
它可以用于基于属性键获取属性值。Properties类提供了从properties属性文件中获取数据并将数据存储到属性文件中的方法。而且,Properties也可以用来获取系统的属性。
2 Java Properties的优点
如果properties属性文件更改了信息,则Java类无需重新编译。
3 Java Properties的构造方法
构造方法 | 描述 |
---|---|
Properties() | 创建一个没有默认值的空属性列表。 |
Properties(Properties defaults) | 使用指定的默认值创建一个空的属性列表。 |
4 Java Properties的方法
方法 | 描述 |
---|---|
public void load(Reader r) | 从Reader对象加载数据。 |
public void load(InputStream is) | 从InputStream对象加载数据 |
public void loadFromXML(InputStream in) | 用于将指定输入流上XML文档表示的所有属性加载到此属性表中。 |
public String getProperty(String key) | 根据键返回值。 |
public String getProperty(String key, String defaultValue) | 使用指定的键搜索属性。 |
public void setProperty(String key, String value) | 调用Hashtable的put方法。 |
public void list(PrintStream out) | 用于将属性列表打印到指定的输出流。 |
public void list(PrintWriter out) | 用于将属性列表打印到指定的输出流。 |
public Enumeration<?> propertyNames() | 返回属性列表中所有键的枚举。 |
public Set<String> stringPropertyNames() | 从属性列表中返回一组键,其中键及其对应的值为字符串。 |
public void store(Writer w, String comment) | 将属性写入writer对象。 |
public void store(OutputStream os, String comment) | 将属性写入OutputStream对象。 |
public void storeToXML(OutputStream os, String comment) | 将属性写入writer对象以生成XML文档。 |
public void storeToXML(Writer w, String comment, String encoding) | 将属性写入writer对象,以使用指定的编码生成XML文档。 |
5 读取properties文件的例子
5.1 db.properties
要从属性文件中获取信息,在resources目录下创建db.properties
内容如下:
user=root
password=123456
5.2 Demo.java
让我们创建Java类来从属性文件中读取数据。
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java Properties的例子
*/
import java.util.*;
import java.io.*;
public class Demo {
public static void main(String[] args)throws Exception{
Properties prop=new Properties();
ClassLoader classLoader = Demo.class.getClassLoader();
InputStream in = classLoader.getResourceAsStream("db.properties");// 读取属性文件db.properties
prop.load(in); /// 加载属性列表
System.out.println(prop.getProperty("user"));
System.out.println(prop.getProperty("password"));
}
}
5.3 输出结果
执行Demo类,结果为:
root
123456
6 读取所有系统属性的例子
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java Properties的例子
*/
import java.util.*;
import java.io.*;
public class Demo {
public static void main(String[] args)throws Exception{
Properties p=System.getProperties();
Set set=p.entrySet();
Iterator itr=set.iterator();
while(itr.hasNext()){
Map.Entry entry=(Map.Entry)itr.next();
System.out.println(entry.getKey()+" = "+entry.getValue());
}
}
}
输出结果为:
java.runtime.name = Java(TM) SE Runtime Environment
sun.boot.library.path = C:\Program Files\Java\jdk1.8.0_31\jre\bin
java.vm.version = 25.31-b07
java.vm.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
path.separator = ;
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg = sun.io
user.country = CN
user.script =
sun.java.launcher = SUN_STANDARD
sun.os.patch.level =
java.vm.specification.name = Java Virtual Machine Specification
......
7 创建properties文件的例子
7.1 Demo.java
package com.yiidian;
/**
* 一点教程网: http://www.yiidian.com
*/
/**
* Java Properties的例子
*/
import java.util.*;
import java.io.*;
public class Demo {
public static void main(String[] args)throws Exception{
Properties p=new Properties();
p.setProperty("name","eric");
p.setProperty("email","eric@yiidian.com");
p.store(new FileWriter("info.properties"),"Yiidian Properties Example");
}
}
7.2 info.properties
查看项目根目录下是否生成info.properties文件
内容如下:
#Yiidian Properties Example
#Fri Apr 24 11:31:00 CST 2020
email=eric@yiidian.com
name=eric
热门文章
优秀文章