Java 如何获取(path.get)一个文件名以某个字符开头的文件?

Java 如何获取(path.get)一个文件名以某个字符开头的文件?,java,Java,我在Java8项目中工作,在这个项目中,我使用Paths类从特定位置读取了一个文件,所有这些都可以正常工作。 这是我的代码: String inputDir = "src/main/distribution/in"; String fileName = "my_file.txt"; Path inputFile = Paths.get(inputDir, fileName); // reading file lines... is OK 现在我的问

我在Java8项目中工作,在这个项目中,我使用Paths类从特定位置读取了一个文件,所有这些都可以正常工作。 这是我的代码:

String inputDir = "src/main/distribution/in";

String fileName = "my_file.txt";

Path inputFile = Paths.get(inputDir, fileName);

// reading file lines... is OK
现在我的问题是这个文件每天都会以以下格式更改
filename.txt\u date
因此,每天我只会找到一个文件名如下:
my_file.txt_020822020

因此,我的问题是,如何仅通过检查文件名是否以“my_file.txt”开头来读取文件

你对此有什么建议吗


提前感谢。

路径随流而来,因此您可以在文件列表中进行筛选:

import java.nio.file.Files;
import java.nio.file.Paths;

String inputDir = "src/main/distribution/in";
String fileName = "my_file.txt";
Optional<Path> file=Files.list(Paths.get(inputDir))
    .filter(p->p.getFileName().toFile().getName().startsWith(fileName))
    .findFirst();
if(file.isPresent())
{
    Path foundFile=file.get();
    File asFile=foundFile.toFile();
    // business logic here
}
导入java.nio.file.Files;
导入java.nio.file.path;
字符串inputDir=“src/main/distribution/in”;
String fileName=“my_file.txt”;
可选文件=Files.list(path.get(inputDir))
.filter(p->p.getFileName().toFile().getName().StartWith(文件名))
.findFirst();
if(file.isPresent())
{
Path foundFile=file.get();
File asFile=foundFile.toFile();
//这里的业务逻辑
}
编辑:使用findFirst而不是forEach,因为只有一个文件


EDIT2:显然Path.startsWith()与String的工作方式不同。将其更改为以字符串形式获取文件名(通过文件)以验证其名称。

类似的内容可能比forEach更好。谢谢@Conffusion,但我有一个问题,如何在这个循环中获取我的文件对象,而不只是打印消息?因为在我的代码中,我有一个stringArray=Files.readAllLines(inputFile,StandardCharsets.ISO_8859_1);要获取文件的内容,p的类型为Path en p。toFile()是您的文件实例。(Lambda表达式不如旧java)file.isPresent()仅当flieName=确切的文件名时才返回true,在我的情况下,如果我给它“my_file.txt_20082020”file.isPresent返回true,如果我给它“my_file.text”(这是我要找的)它返回false,您知道如何正确使用startwiths验证现有文件吗。提前感谢:)事实上,conffusion是第一次尝试编写一个库,将存储配置参数(数据库表、属性文件等)的多种方式结合起来,但使用单个API访问它们。所以conffusion=配置+融合。祝你好运