【问题标题】:use regex on filename/filepath for FileInputStream对 FileInputStream 的文件名/文件路径使用正则表达式
【发布时间】:2015-05-12 14:53:33
【问题描述】:

如何在 FileInputStream 的文件名上使用正则表达式。即如何使用 FileInputStream 选择名称为 abc*.txt 的文件。当我如下使用时,它会抛出 fileIOexception。

FileInputStream is = new FileInputStream("C:/dir1/dir2/abc.*\\.txt");

【问题讨论】:

  • 通常你会得到很多名字匹配正则表达式的文件,所以FileInputStream()接受一个特定的文件名而不接受正则表达式是合乎逻辑的。
  • 如果要读取 0 个或多个文件怎么办?如果只想访问一个名为 abc*.txt 的文件,例如 abc123.txt 或 abc234.txt,那么正则表达式是什么
  • 如果我们想象FileInputStream() 读取了0个或多个文件,你将如何使用它?如何知道您现在正在处理哪个文件?想想怎么用吧。
  • @54l3d:你是对的。如果我不知道确切的文件名,如何在fileinputstream中概括文件名?

标签: regex filenames fileinputstream


【解决方案1】:

我会尝试使用PathMatcher。这是tutorial

例子:

String pattern = "glob:*.{java,class}";
PathMatcher matcher =
    FileSystems.getDefault().getPathMatcher(pattern);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-07
    • 2010-09-19
    • 2013-12-09
    • 2019-07-03
    • 2014-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多