.ini、.properties、*.xml都是配置文件,与Java的HashMap结构一样,都是一个存放key-value对的容器,只是配置文件那些是属性与属性值的key-value对。一般是记录着程序运行的参数,而且很多是初始化的参数,一般这些参数都是自程序的开始运行,也就是程序的出生到程序被关闭,也就是程序死亡都需要使用的定值。
.ini,.properties是不支持中文的,而*.xml是支持中文的。
配置文件在Linux系统或者在一些Java工程中的是.properties。配置文件类Properties在java.util.包里面,同时涉及文件的读写操作,所以同样需要java.io.*。
import java.io.*;
import java.util.*;
public class propertiesTest {
public static void main(String[] args) throws IOException {
// 同样先初始化Properties类
// 初始化之后在内存就出现一个保存key-value对的properties对象
Properties properties = new Properties();
// 之后设置三个属性,可以与HashMap的put方法做类比,同样是在操作key-value对
// 故意设置一个中文的value来说明*.ini,*.properties与*.xml之间对中文的支持
properties.setProperty("username", "aaa");
properties.setProperty("chinese", "中文");
properties.setProperty("password", "123");
// 此时,内存中的properties对象便有三个key-value对
// 利用store方法与storeToXML方法把内存中的properties对象记录的属性保存到磁盘中的配置文件
// 方法仅支持文件输出流对象,单单一个文件对象File是行不通的
// 第二个参数是此配置文件的注释
properties.store(new FileOutputStream("c:\\a.ini"), "中文");
properties.store(new FileOutputStream("c:\\a.properties"), "comment");
properties.storeToXML(new FileOutputStream("c:\\a.xml"), "注释");
// 清空properties对象
properties = new Properties();
// 再把c:\a.ini里面存放的属性读取进来
properties.load(new FileInputStream("c:\\a.ini"));
// 修改password属性的值变成456
properties.put("password", "456");
// 打印此时内存中的properties对象
System.out.println(properties);
// 如下方法,可以取得内存中的properties对象中的username的属性值
System.out.println(properties.getProperty("username"));
// 再清空properties对象,读取c:\a.xml配置文件所存储的属性,注意读*.xml方法是不同
properties = new Properties();
properties.loadFromXML(new FileInputStream("c:\\a.xml"));
// 打印内存中的属性
System.out.println(properties);
}
}
一、新建properties文件
在src文件下new一个file,命名为XXX.properties
二、编写配置文件
在properties的格式下,添加名值对,在source格式下添加名值对的方式注意事项:
1、名用大写比较规范
2、=两边别打空格
3、名值对写完后别打分号
三、在java中调用配置文件
1、实例化properties类(java.util.Properties)
Properties prop = new Properties();
2、利用Properties中的load()方法加载配置文件
这里要注意的是要使用类的反射来加载配置文件并且要写入配置文件的正确的路径
prop.load(DBUtil.class.getResourceAsStream("/jdbc.properties"));
3、利用Properties中的getProperty(”名”)获取配置文件中的值
String DRIVERNAME = prop.getProperty("DRIVERNAME");
截取自http://blog.csdn.net/yongh701/article/details/44123619《【Java】配置文件概念,Java对配置文件的操作》
http://blog.csdn.net/wangdajiao/article/details/54315237《 java中properties配置文件的用法》