java - 使用 Java 8 收集数组/列表中的文件名

标签 java arrays string hashmap filestream

因此,我在尝试收集特定文件夹内的所有文件名并将它们存储在数组 [] 或评论中的列表中时遇到了问题。

这是到目前为止的代码:

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/

相关文章:

java - 没有多播的tomcat session 复制

java - 如何连接到虚拟机上的mysql数据库

java - 模块 jrt.fs 和模块 java.base 中的 RuntimeException : Package jdk. internal.jimage.decompressor

php - while->fetch 循环中的迭代不起作用

iphone - 将字符串附加到 UILabel 文本?

java - 我在运行 ant build 时得到 '**** WRONG JAVA VERSION ****'

arrays - 将列数组转换为行对象数组

php - 无法从 json_encoded 数组获取数据

C++如何将字符串中的所有 `\`变成 `/`?

java - 单个字符串中的多个字符串替换生成所有可能的组合