3

我要读取一个名称部分已知的文件。假设我有几个文件,如下所示:

  • apple_5_34.jpg
  • 橙色_3_67.bmp
  • 香蕉_1_13.gif

当我只知道“apple”、“orange”或“banana”这些词时,我想获得这些文件的 InputStream。

任何建议将不胜感激,并提前致谢。

4

2 回答 2

3

调用listFiles()目录以获取 File 数组,循环遍历它,检查是否File[i].getName().toLowerCase().startsWith("banana")以及是否存在,获取InputStreamfor File[i]

于 2012-10-25T18:37:26.560 回答
2

您有 2 个选项:

在所有文件夹内容上循环运行并检查startsWith上面定义的所有 3 个名称的大小写。

或者regex像这样运行:

[apple|banana|orange]+([\d\D]+)

或者

/\b[apple|banana|orange][^\b]+\b/g

代码片段

 InputStream in = null;

if(File[i].getName().matches("[apple|banana|orange]+([\d\D]+)")){
 in = new FileInputStream(File[i]);
}
于 2012-10-25T18:58:10.797 回答