一、简述
各种语言都有自己所支持的配置文件类型,Java支持的是.properties文件的读写。JDK内置的java.util.Properties类为我们操作.properties文件提供了便利。
二、properties文件格式
文件示例:
#adaptertest init data
#手机设备号
mobiledevice=84c5f58a
#音箱设备号
miadevice=A3004100005P
…
“#”开始的一行为注释信息;
“=”左边的我们称之为key,“=”右边的我们称之为value。key是我们程序中的变量,而value是我们根据实际情况配置的。
key与value只能为字符串。
三、properties类中的主要方法
1)getProperty(String key)
用指定的键在此属性列表中搜索属性。也就是通过参数key,得到key所对应的value。
2)load(InputStream inStream)
从输入流中读取属性列表(键和元素对)。以供getProperty( String key)来搜索。
3)setProperty(String key, String value)
调用Hashtable的方法put 。他通过调用基类的put方法来设置键-值对。
4)store(OutputStream out, String comments)
以适合使用load方法加载到Properties表中的格式,将此Properties表中的属性列表(键和元素对)写入输出流。与load方法相反,该方法将键-值对写入到指定的文件中去。
5)clear()
清除所有装载的键-值对。该方法在基类中提供
四、Java读取Properties文件
Java读取Properties文件的方法有很多,以下为使用java.util.Properties类的load()方法读取Properties文件。
待读取.properties文件需放到正确的工程文件目录下,否则会报错:.properties文件与project.properties文件在同一级目录。
1)Properties文件
#adapter test init data
#手机设备号
mobiledevice=84c5f58a
#音箱设备号
miadevice=A3004100005P
2)java代码
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.util.Iterator;
import java.util.Properties;
Properties prop = new Properties();
try {
//读取文件
InputStream inputStream = newFileInputStream("adapter_test_initdata.properties");
//设置编码格式为utf-8,处理中文乱码问题
BufferedReader bf = newBufferedReader(new InputStreamReader(inputStream, "utf-8"));
prop.load(bf);
Iterator it=prop.stringPropertyNames().iterator();
while(it.hasNext()){
Stringkey=it.next();
System.out.println(key+":"+prop.getProperty(key));
}
mobile_device = prop.getProperty("mobiledevice");
mia_device = prop.getProperty("miadevice");
inputStream.close();
}catch (Exception e) {
System.out.println(e);
e.printStackTrace();
}