我是 Java 编程的新手。我想要实现的是获取具有特定模式的文件名,我将这些文件名收集到一个字符串数组中。我能够打印结果,而不是那样,我想将文件名放入字符串数组中,以便我可以在程序的其余部分进一步使用数组的长度。
File folder = new File("/Test1/Test2/Test3/XYZ03/");
String target_file;
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.length; i++) {
if (listOfFiles[i].isFile()) {
target_file = listOfFiles[i].getName();
if (target_file.startsWith("XYZ03") && target_file.endsWith(".dat")) {
System.out.println("found" + " " + target_file);
}
}
}
最佳答案
新的 nio 类:
List<String> fileNames = Files.list(Paths.get("/Test1/Test2/Test3/XYZ03"))
.map(Path::getFileName)
.map(Path::toString)
.filter(name -> name.startsWith("XYZ03") && name.endsWith(".dat"))
.collect(Collectors.toList());
或者正如@MalteHartwig 评论的那样:
long fileCount = Files.list(Paths.get("/Test1/Test2/Test3/XYZ03"))
.map(Path::getFileName)
.map(Path::toString)
.filter(name -> name.startsWith("XYZ03") && name.endsWith(".dat"))
.count();
Files.list 是一个惰性流 (java 8)。
关于Java - 如何在 File[] 中收集结果后填充字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46931422/