Java实现按名称、日期、大小对文件进行排序
生活随笔
收集整理的這篇文章主要介紹了
Java实现按名称、日期、大小对文件进行排序
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
按文件名稱排序:
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 同時(shí)此處修改為返回 1 排序就會(huì)是遞減}});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表達(dá)式long diff = f1.length() - f2.length();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改為 返回-1 同時(shí)此處修改為返回 1 排序就會(huì)是遞減});for (File file1 : files) {if (file1.isDirectory()) continue;System.out.println(file1.getName() + ":" + file1.length());}}Comparator使用了策略模式,定義一系列的算法,把它們一個(gè)個(gè)封裝起來, 并且使它們可相互替換。
實(shí)現(xiàn)Comparator接口有很多種不同的策略。名稱、日期、文件大小是策略。
總結(jié)
以上是生活随笔為你收集整理的Java实现按名称、日期、大小对文件进行排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jvm监控工具(排查内存溢出和内存泄漏)
- 下一篇: 三个线程交替打印ABC(Conditio