gpt4 book ai didi

java - 按大小对文件流进行排序

转载 作者:行者123 更新时间:2023-11-30 06:04:20 25 4
gpt4 key购买 nike

我试图在某些文件树中获取前 5 个最大的文件,但我对如何在流中正确排序它们感到困惑。问题是我不知道从哪里获取我的排序应基于的参数。

try (Stream<Path> stream = Files.walk(Paths.get("/home/stanislav/test"))) {
stream
.sorted(Comparator.comparing())
.limit(5)
.forEach(System.out::println);
}

这是我唯一能想出的代码块。我知道我正在处理 Path 类型的 Stream。有什么办法可以转换它并以流方式完成任务吗?如果是这样,我该怎么做才能让我的分拣线对文件大小进行操作?

最佳答案

给比较器一个文件长度:

try (Stream<Path> stream = Files.walk(Paths.get("/home/stanislav/test"))) {
stream
.sorted(Comparator.comparing(p -> p.toFile().length(), Comparator.reverseOrder()))
.limit(5)
.forEach(System.out::println);
}

Comparator.reverseOrder() 用于降序排序。

关于java - 按大小对文件流进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49722086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com