因此,我在尝试收集特定文件夹内的所有文件名并将它们存储在数组 [] 或评论中的列表中时遇到了问题。
这是到目前为止的代码:
String[] alist = new String[];
Files.list(Paths.get("mypath")).filter(Files::isRegularFile).forEach(System.out::println(alist);
或者
String[] alist;
alist = Files.list(Paths.get("mypath")).filter(Files::isRegularFile).toArray(String[]::new);
或者
Stream<String> alist = Stream.of(Files.list(Paths.get("path")).filter(Files::isRegularFile).toString());
String[] alist2 = alist.toArray(size -> new String[size]);
如您所见,我在找出执行此操作的正确方法时遇到了一些麻烦。
目的是一旦我将所有文件名存储在数组中。然后我可以拆分数组中的每个字符串。然后创建一个根据数组中分割字符串构建的 HashMap [key][name]。
几年后我才重新接触 Java 和 OOP,所以我有点生疏了。
感谢您的帮助!
最佳答案
正如@zforgo所说,只需使用stream.map(用于处理每个元素)
并收集即可获取列表结果
List<String> filenames = Files.list(Paths.get("D:\\game\\Rayman1"))
.filter(Files::isRegularFile)
.map(p -> p.getFileName().toString())
.collect(Collectors.toList());
关于java - 使用 Java 8 收集数组/列表中的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58676119/