当前位置: 首页 > 面试题库 >

如何在Java目录中对文件进行排序?

师博
2023-03-14
问题内容

这是我的代码,它有效!但我希望能够根据名称,大小,修改日期等对文件列表进行排序

import java.io.File;
import org.apache.commons.io.FileUtils;

public class StartingPoint {
    public static void main(String[] args) {
        File file = new File(
                "/home/t/lectures");
        File[] files = file.listFiles();
        for (File f : files) {
            System.out.println("File : " + f.getName() + " ["
                    + FileUtils.byteCountToDisplaySize(f.length()) + "]");
        }
    }
}

问题答案:
Arrays.sort( files, new Comparator<File>() {
    public int compare( File a, File b ) {
        // do your comparison here returning -1 if a is before b, 0 if same, 1 if a is after b
    }
} );

您可以定义许多不同的Comparator类来进行不同的比较,例如:

public class FileNameComparator implements Comparator<File> {
    public int compare( File a, File b ) {
        return a.getName().compareTo( b.getName() );
    }
}

public class FileSizeComparator implements Comparator<File> {
    public int compare( File a, File b ) {
        int aSize = a.getSize();
        int bSize = b.getSize();
        if ( aSize == bSize ) {
            return 0;
        }
        else {
            return Integer.compare(aSize, bSize);
        }
    }
}

...

然后,您只需将它们换出:

Arrays.sort( files, new FileNameComparator() );

要么

Arrays.sort( files, new FileSizeComparator() );


 类似资料:
  • 问题内容: 我使用和在目录中显示文件名。但是他们无序。如何分类?语言是C。 问题答案: 在C语言中对事物进行排序的惯用方式是使用该函数。为此,最好安排所有文件名收集到一个指针数组中,然后对数组进行排序。 这虽然不太困难,但是确实需要一些动态数组管理,或者您需要引入静态限制(最大文件名长度,最大文件数)。

  • 我想在RecycerView中对项目进行排序。我的用户名是20ABC1、20ABC2、…、20ABC10、…等等。 我尝试了相关问题的答案,其中一个是: 谢谢:)

  • 问题内容: 我有一堂水果课。我正在创建此类的列表,并将每个水果添加到列表中。我想根据水果名称的顺序对该列表进行排序。 我正在使用for循环创建它的列表 我需要使用列表中每个对象的水果名称对该arrayList进行排序 问题答案: 使用这样的: 现在,你的水果清单将基于进行排序。

  • 问题内容: 我们如何排序? 我想根据中的值进行排序。 问题答案: 你是否必须使用HashMap?如果只需要Map Interface,请使用TreeMap 如果要通过比较HashMap中的值进行排序。你必须编写代码才能执行此操作,如果要执行此操作,则可以对HashMap的值进行排序: 如果你想经常访问此排序列表,则可以将元素插入到中,尽管集合和列表的语义有些不同。

  • 问题内容: 我不能在数据库中执行ORDER BY 问题答案: 将数据从ResultSet中移到所需的任何对象表示形式中,然后对数据进行排序,就像此时的其他任何数据一样。 如果您使用Collections.Sort对复杂对象进行排序,则需要实现Comparator。

  • 问题内容: 如何按对象的字段对对象的JSONArray排序? 输入: 所需的输出(按“名称”字段排序): 问题答案: 试试这个: 排序后的JSONArray现在存储在对象中。