0

「configFile」を /file/es/Promo/pricing.xml ではなく /file/es/Promo/promo*.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

pric* や PATH などの WILDCARD を渡す正規表現を使用して FILENAME を取得するメソッドを作成することで、これを実現しました。

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 に答える