我可以将“configFile”传递为/file/es/Promo/promo*.xml而不是/file/es/Promo/pricing.xml
如果不是我怎么能实现这个目标?请指导
// First create a new XMLInputFactory
XMLInputFactory inputFactory = XMLInputFactory.newInstance();
// Setup a new eventReader
InputStream in = new FileInputStream(configFile);
XMLEventReader eventReader = inputFactory.createXMLEventReader(in);
// Read the XML document
请建议。
答案 0 :(得分:0)
它不会像你建议的那样工作,所以你必须自己实现它。例如,您可以这样做:
String directoryName = "/file/es/Promo/";
File directory = new File(directoryName);
InputStream in = null;
for (String fileName : directory.list()) {
if (fileName.matches("promo.*\\.xml")) {
in = new FileInputStream(directoryName + fileName);
break;
}
}
答案 1 :(得分:0)
我们通过编写一个方法来使用正则表达式获取FILENAME来实现它,传递WILDCARD,如pric *和PATH
public static String getFileName(String pFilePath, String pFilePattern) throws IOException {
Pattern pattern = Pattern.compile(pFilePattern);
String fileName = null;
File fileDir = new File(pFilePath);
File[] listFiles = fileDir.listFiles();
if (listFiles != null) {
for (int i = 0; i < listFiles.length; i++) {
// ignore directories
if (listFiles[i].isDirectory()) {
continue;
}
Matcher fileMatcher = pattern.matcher(listFiles[i].getName());
if (fileMatcher.find()) {
fileName = listFiles[i].getCanonicalPath();
}
} // end for()
}
return fileName;
}
这将为我们提供文件名,并将其传递给我的查询中提到的FileInputStream。
希望这会有所帮助......其他人