读取properties文件
两种方法:
一:Properties读取
二:ResourceBundle读取
Properties读取代码
使用字符流读取,防止出现中文乱码
public static Properties properties=new Properties();
static {
try {
InputStream fileReader=new FileInputStream( new File("src/test/resources/config.properties"));
BufferedReader buf=new BufferedReader(new InputStreamReader(fileReader));
properties.load(buf);
} catch ( IOException e) {
e.printStackTrace();
}
}
直接使用字节流读取:
public static Properties properties=new Properties();
try {
InputStream in = new FileInputStream("src/test/resources/config.properties");
properties.load(in);
//为了防止出现乱码,需要设置properties的编码为utf-8或者GBK
String excelpath=new String(properties.getProperty("excel-path").getBytes("ISO8859-1"),"utf-8");
System.out.println("excelpath"+excelpath);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ResourceBundle读取代码
static {
//直接写config即可,不需要写文件后缀名
ResourceBundle resourceBundle = ResourceBundle.getBundle("config");
Enumeration enumeration = resourceBundle.getKeys();
while (enumeration.hasMoreElements()) {
try {
String value = resourceBundle.getString((String) enumeration.nextElement());
System.out.println(new String(value.getBytes("iso-8859-1"), "utf-8"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
}
注意:使用ResourceBundle读取配置文件时,要讲配置文件写在src目录下,如果出现Can't find bundle for base name config, locale zh_CN错误;主要原因是config配置没有放置到src目录下,我这里使用的是maven项目,将配置文件放置在src/main/resources目录下面