一、properties配置文件简介
Java中有个比较重要的类Properties(Java.util.Properties),主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。像Python支持的配置文件是.ini文件,同样,它也有自己读取配置文件的类ConfigParse,方便程序员或用户通过该类的方法来修改.ini配置文件。在Java中,其配置文件常为.properties文件,格式为文本文件,文件的内容的格式是“键=值”的格式,文本注释信息可以用"#"来注释。在properties文件中,可以用井号"#"来作注释:
userLocate=name>email
passwordLocate=name>password
btnLocate=classname>moco-btn-red
由于properties文件在Java中操作便利,因此编程中经常会用到。
二、Java的Properties类
属性映射(property map):是一种存储键/值对的数据结构。属性映射经常被用来存放配置信息。
它有三个特性:
1.键和值都是字符串;
2.键/值对可以很容易地写入文件或从文件读出;
3.用二级表存放默认值
实现属性映射的Java类被称为Properties(Java.util.Properties),此类是Java中比较重要的类,主要用于读取Java的配置文件,各种语言都有自己所支持的配置文件,配置文件中很多变量是经常改变的,这样做也是为了方便用户,让用户能够脱离程序本身去修改相关的变量设置。
它提供了几个主要的方法:
1. getProperty ( String key):用指定的键在此属性列表中搜索属性。也就是通过参数 key ,得到 key 所对应的 value;
2. load ( InputStream inStream):从输入流中读取属性列表(键和元素对)。通过对指定的文件(比如说上面的 test.properties 文件)进行装载来获取该文件中的所有键 - 值对。以供 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.util.Properties类的load()方法:
package com.company;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
public class ProUtil {
public void readPro() throws Exception{
Properties prop = new Properties();
FileInputStream proPath = new FileInputStream("E:\\SeleniumTestcase\\01study\\test\\src\\test.properties");//填写properties在计算机的本地绝对路径,读取配置文件
InputStream in = new BufferedInputStream(proPath);//将读取出来的配置文件放到缓存中
prop.load(in); //加载配置文件
String a = prop.getProperty("userLocate"); //从配置文件中获取userLocate的值
System.out.println(a);
}
public static void main(String[] args) throws Exception{
ProUtil pro = new ProUtil();
pro.readPro();
}
}
本次运行的打印结果为:
name>email
关于java读取配置文件的6种方式,具体可参考技术博客:https://blog.csdn.net/Senton/article/details/4083127
来源:oschina
链接:https://my.oschina.net/u/4324236/blog/4148878