我有3个属性文件,如web1.properties
,web2.properties
,web3.properties
。我想用单个属性对象一次加载所有的属性文件。如何使用java加载和读取多个属性文件
Properties prop = new Properties();
prop.load("web1.properties");
prop.load("web2.properties");
prop.load("web3.properties");`
我试着加载多个属性文件的下面的代码。
public class ReadFileExtension {
static Properties prop = new Properties();
public static void main(String[] args) throws IOException {
String projectFolder = System.getProperty("user.dir");
File f1 = new File(projectFolder);
File[] listOfFiles = f1.listFiles();
System.out.println("Length:"+listOfFiles.length);
for(int i=0;i<listOfFiles.length;i++){
if (listOfFiles[i].isDirectory()) {
//System.out.println("File " + listOfFiles[i].getAbsolutePath());
String prop1 = listOfFiles[i].getAbsolutePath();
if(prop1.contains("properties")){
System.out.println(prop1);
File folder = new File(prop1);
File[] listOfFiles1 = folder.listFiles();
for (int j = 0; j < listOfFiles1.length; j++) {
if (listOfFiles1[j].isFile()) {
//System.out.println("Feature File: " + listOfFiles1[j].getAbsolutePath());
//prop.load(new FileInputStream(listOfFiles1[j].getAbsolutePath()));
prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream(listOfFiles1[j].getAbsolutePath()));
}
}
}
}
}
System.out.println("Prop 1: "+prop.getProperty("ApplicationURL"));
System.out.println("Prop 2: "+prop.getProperty("Application"));
}
}
您可以使用[this]之类的东西(http://stackoverflow.com/questions/5093432/multiple-properties-files)。 – Abhishek
如果你执行你发布的代码,你会得到什么? –
@Abhishek NullPointerException在该链接中运行代码时。 – tsivarajan