java - 使用 Java 根据日期对文件进行排序

标签 java csv

我需要根据文件的日期对文件进行排序。我已经成功编写了代码,该代码根据上次修改对文件进行排序,但帮助我根据文件的日期对文件进行排序。较旧的文件应该先出现。

File dir = new File("E:\\myfiles");
File[] files = dir.listFiles();
Arrays.sort(files, new Comparator<File>() {
    public int compare(File f1, File f2)
    {
        return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
    }
});

for (int i = 0; i < files.length; i++)
    System.out.println(files[i]);

我的文件是

E:\myfiles\test_20140704.csv
E:\myfiles\test_20140705.csv
E:\myfiles\test_20140703.csv
E:\myfiles\test_20140706.csv

最佳答案

如果您只是想按文件名称排序(基于问题中提供的语法)。只需更改比较方法即可。

File dir = new File("E:\\myfiles");
File[] files = dir.listFiles();
Arrays.sort(files, new Comparator<File>() {
   public int compare(File f1, File f2)
   {
      //return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
      return f1.getName().compareTo(f2.getName());
   }
   });

(根据您的最新评论,以下内容不相关)

文件类不支持获取创建时间。但是 Java 7 有一个功能可以提供帮助

BasicFileAttributes attr = Files.readAttributes(file, BasicFileAttributes.class);

System.out.println("creationTime: " + attr.creationTime());
System.out.println("lastAccessTime: " + attr.lastAccessTime());
System.out.println("lastModifiedTime: " + attr.lastModifiedTime());

参见http://docs.oracle.com/javase/tutorial/essential/io/fileAttr.html

关于java - 使用 Java 根据日期对文件进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607912/

相关文章:

Java正则表达式仅在开头或结尾保留*

arrays - 需要根据单独数组的排序对4个不同的数组进行排序

python - 如何获取 csv 文件的子集作为 Spark RDD

python - 对 csv 的各个列值实现 python split

java - 使资源 xml 可配置,同时在 java 中进行测试?

java - 无效的转义字符

java - 当使用 Eclipse 重命名动态 Web 项目的名称并部署在 Glassfish 上时,获取 HTTP 状态 404 - 未找到

java - Android:无法在 Android 中的日历上添加事件

python - 按多个条件聚合 CSV 行

python - 如何保存Python网页抓取结果