我会做其他事情,因为你需要对这个列表做的就是测试它的条目。
我会一行一行地对其应用正则表达式,据我所知,这将非常简单,只有两个组和一个积极的前瞻,这样我就可以只提取所有匹配的行并创建一个 ArrayList那些,然后迭代 ArrayList 并测试每个方法。如果您可以就文件的外观提供一些输入,我可以帮助您输入代码。
更新
例如,这是我提出的代码(可以在 5 分钟内改进)进行解析:
/**
*
* @param inputFile location of inputFile
* @return {@link ImmutableSet} of tests to run
*/
public static ImmutableSet<String> parseConfigFile(File inputFile){
HashSet<String> innerSet = Sets.newHashSet();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(inputFile));
String newLine = "";
while( (newLine = bufferedReader.readLine()) != null){
Pattern p = Pattern.compile("(.+)=(?=yes|1|true)(.+)");
Matcher m = p.matcher(newLine);
while(m.find()){
//System.out.println(m.group(1));
innerSet.add(m.group(1));
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(bufferedReader != null)
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return ImmutableSet.copyOf(innerSet);
}
我测试了一个看起来像这样的文件,例如:
SomeTest=true
SomeOtherTest=false
YetAnotherTest=1
LastTest=yes
GogoTest=no
OneMore=0