0

我可以将“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

请建议。

4

2 回答 2

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;
    }
}
于 2013-05-17T13:24:50.753 回答
0

我们通过编写一个方法来实现它,该方法使用通过 WILDCARD 的正则表达式获取 FILENAME,例如 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。

希望这会有所帮助......其他

于 2013-06-11T15:01:02.090 回答