2013-05-17 69 views
0

我可以通过“CONFIGFILE”为/file/es/Promo/promo*.xml而不是/file/es/Promo/pricing.xmlJava的:正则表达式/通配符文件路径的FileInputStream

如果不是我怎么能做到这一点?请指导

// 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

请重新表述您的问题,因为它不清楚 – Stephan

+0

我如何通过通配符来挑选通过通配符相匹配的文件夹中的文件之一。??? – techanuva

回答

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

我们写的方法使用正则表达式通过通配符像极地*和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; 
} 

得到的文件名这会给我们实现它文件名称,并传递给我的查询中提到的F​​ileInputStream。

希望这将有助于...其他

相关问题