我要读取一个名称部分已知的文件。假设我有几个文件,如下所示:
- apple_5_34.jpg
- 橙色_3_67.bmp
- 香蕉_1_13.gif
当我只知道“apple”、“orange”或“banana”这些词时,我想获得这些文件的 InputStream。
任何建议将不胜感激,并提前致谢。
我要读取一个名称部分已知的文件。假设我有几个文件,如下所示:
当我只知道“apple”、“orange”或“banana”这些词时,我想获得这些文件的 InputStream。
任何建议将不胜感激,并提前致谢。
调用listFiles()
目录以获取 File 数组,循环遍历它,检查是否File[i].getName().toLowerCase().startsWith("banana")
以及是否存在,获取InputStream
for File[i]
。
您有 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]);
}