Java:FileInputStream的正则表达式/通配符文件路径

Java:FileInputStream的正则表达式/通配符文件路径,java,file-io,Java,File Io,我是否可以将“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 FileIn

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

请提出建议。

它不会按照您建议的方式工作,因此您必须自己实施它。例如,您可以这样做:

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;
    }
}

我们通过编写一个方法来获得文件名,使用正则表达式传递通配符,如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;
}
publicstaticstringgetfilename(stringpfilepath,stringpfilepattern)抛出IOException{
Pattern=Pattern.compile(pFilePattern);
字符串文件名=null;
File fileDir=新文件(pFilePath);
File[]listFiles=fileDir.listFiles();
if(listFiles!=null){
对于(int i=0;i
这将为我们提供文件名,并将其传递给查询中提到的FileInputStream


希望这将有助于…其他人

请重新表述您的问题,因为问题不明确。我如何传递通配符来选择文件夹中与传递的通配符匹配的文件之一。???