當前位置:
首頁 >
Java实现按名称、日期、大小对文件进行排序
發布時間:2025/3/21
61
豆豆
生活随笔
收集整理的這篇文章主要介紹了
Java实现按名称、日期、大小对文件进行排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
按文件名稱排序:
public static void orderByName(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List<File> fileList = Arrays.asList(files);fileList.sort(new Comparator<File>() {@Overridepublic int compare(File o1, File o2) {if (o1.isDirectory() && o2.isFile()) {return -1;}if (o1.isFile() && o2.isDirectory()) {return 1;}return o1.getName().compareTo(o2.getName());}});for (File file1 : files) {System.out.println(file1.getName());}}按文件更改日期排序:
public static void orderByDate(String filePath) {File file = new File(filePath);File[] files = file.listFiles();Arrays.sort(files, new Comparator<File>() {public int compare(File f1, File f2) {long diff = f1.lastModified() - f2.lastModified();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減}});for (int i = 0; i < files.length; i++) {System.out.println(files[i].getName());System.out.println(new Date(files[i].lastModified()));}}按文件大小排序:
public static void orderByLength(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List<File> fileList = Arrays.asList(files);fileList.sort((f1, f2) -> {//這里可以使用lambda表達式long diff = f1.length() - f2.length();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改為 返回-1 同時此處修改為返回 1 排序就會是遞減});for (File file1 : files) {if (file1.isDirectory()) continue;System.out.println(file1.getName() + ":" + file1.length());}}Comparator使用了策略模式,定義一系列的算法,把它們一個個封裝起來, 并且使它們可相互替換。
實現Comparator接口有很多種不同的策略。名稱、日期、文件大小是策略。
總結
以上是生活随笔為你收集整理的Java实现按名称、日期、大小对文件进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm监控工具(排查内存溢出和内存泄漏)
- 下一篇: Java设计模式中的六大设计原则