本示例演示了如何使用Apache Commons IOLastModifiedFileComparator类根据文件的最后修改日期以升序和降序对文件进行排序。此类中定义了两个比较器,分别是LASTMODIFIED_COMPARATOR和LASTMODIFIED_REVERSE。
package org.nhooo.example.commons.io;
import static org.apache.commons.io.comparator.LastModifiedFileComparator.*;
import java.io.File;
import java.util.Arrays;
public class FileSortLastModified {
public static void main(String[] args) {
File dir = new File(System.getProperty("user.home"));
File[] files = dir.listFiles();
if (files != null) {
// 根据文件的末尾升序对文件进行排序
// 修改日期。
System.out.println("Ascending order.");
Arrays.sort(files, LASTMODIFIED_COMPARATOR);
FileSortLastModified.displayFileOrder(files);
System.out.println("------------------------------------");
// 根据文件的末尾以降序对文件进行排序
// 修改日期。
System.out.println("Descending order.");
Arrays.sort(files, LASTMODIFIED_REVERSE);
FileSortLastModified.displayFileOrder(files);
}
}
private static void displayFileOrder(File[] files) {
for (File file : files) {
System.out.printf("%2$td/%2$tm/%2$tY - %s%n", file.getName(),
file.lastModified());
}
}
}这是代码片段产生的示例结果:
Ascending order. 15/12/2016 - ntuser.dat.LOG1 15/12/2016 - ntuser.ini 15/12/2016 - .m2 18/12/2016 - Contacts 22/12/2016 - Videos 01/01/2017 - VirtualBox VMs 02/01/2017 - Desktop 02/01/2017 - Documents ------------------------------------------ Descending order. 02/01/2017 - Documents 02/01/2017 - Desktop 01/01/2017 - VirtualBox VMs 22/12/2016 - Videos 18/12/2016 - Contacts 15/12/2016 - .m2 15/12/2016 - ntuser.ini 15/12/2016 - ntuser.dat.LOG1
Maven依赖
<!-- http://repo1.maven.org/maven2/commons-io/commons-io/2.6/commons-io-2.6.jar --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency>