Java 由不完整的(文件)名称添加的文件

Java 由不完整的(文件)名称添加的文件,java,android,file,Java,Android,File,我有一个方法: public void setup () { File file = new File(74761_control_*.xml) //some code } 其中*-可变部分。事先不知道它将如何确切地称为文件。程序需要加载具有相同名称的xml文件。有没有一种优雅的方法可以通过标准Java SE API实现这一点?Java.nio包提供了一些方便的方法,可以使用文件名模式在目录上进行迭代: Path dir = Paths.get("c:\\temp"); Iterator<

我有一个方法:

public void setup () {
File file = new File(74761_control_*.xml)
//some code
}

其中*-可变部分。事先不知道它将如何确切地称为文件。程序需要加载具有相同名称的xml文件。有没有一种优雅的方法可以通过标准Java SE API实现这一点?

Java.nio包提供了一些方便的方法,可以使用文件名模式在目录上进行迭代:

Path dir = Paths.get("c:\\temp");
Iterator<Path> iterator = Files.newDirectoryStream(dir,  
                                    "74761_control_*.xml").iterator();

不能保证您的模式与多个文件不匹配。所以不,这不起作用。@isnot2bad我保证这个模式只有一个文件。是的,你自己保证,但是你不能保证世界其他地方,没有直接的java API允许你使用模式来构造
文件
对象,作为
文件
对象,它始终引用一个文件或目录。但请看下面我的答案,还有一种方法,并不复杂得多,如果你搜索java开放文件通配符,就会得到很多资源
if (!iterator.hasNext()) {
    // file not found
} else {
    Path path = iterator.next();
    // process file, e.g. read all data
    Files.readAllBytes(path);
    // or open a reader
    try (BufferedReader reader = Files.newBufferedReader(path)) {
        // process reader
    }

    if (iterator.hasNext()) {
        // more than one file found
    }
}