java file.listFiles()按文件名称、日期、大小排序
1:按 文件名称 排序是什么规则呢?
windows的命名规则是,特殊字符(标点、符号)> 数字 > 字母顺序 > 汉字拼音。首字规则,首字相同看第二个,依次类推…
例如:全是数字的情况,100<200<300 ;111<121<131; 111<112<113;
2:按 文件日期 排序是什么规则呢?
按 文件日期 排序分两种:
(1)按文件创建日期排序(比较特殊)
(2)按文件修改日期排序
文件创建日期排序:也就字面意思啦。
文件修改日期排序:按照文件修改日期排序。
3:按 文件大小 排序是什么规则呢?
这个就比较简单了,按文件占用内存的大小排序。
规则,清楚了。那么,就进入正题。怎么让 file.listFiles() 返回的 File[ ] 是按照上面所说的规则排序呢?
1:按 文件名称 排序
public static void orderByName(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List fileList = Arrays.asList(files);Collections.sort(fileList, 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());}}
打印的顺序是:按照递增的顺序排列
2:按 文件日期 排序
按 文件修改日期:递增
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 排序就会是递减}public boolean equals(Object obj) {return true;}});for (int i = 0; i < files.length; i++) {System.out.println(files[i].getName());System.out.println(new Date(files[i].lastModified()));}}
3:按 文件大小 排序
public static void orderByLength(String filePath) {File file = new File(filePath);File[] files = file.listFiles();List<File> fileList = Arrays.asList(files);Collections.sort(fileList, new Comparator<File>() {public int compare(File f1, File f2) {long diff = f1.length() - f2.length();if (diff > 0)return 1;else if (diff == 0)return 0;elsereturn -1;//如果 if 中修改为 返回-1 同时此处修改为返回 1 排序就会是递减}public boolean equals(Object obj) {return true;}});for (File file1 : files) {if (file1.isDirectory()) continue;System.out.println(file1.getName() + ":" + file1.length());}}
这样,打印的顺序是:按照递增的顺序排列
喜欢本文的朋友们,欢迎关注微信公众号“Java面试达人”,收看更多精彩内容
转载于:https://www.cnblogs.com/javasuperman/p/10705142.html
java file.listFiles()按文件名称、日期、大小排序相关推荐
- Java File.listFiles方法具有什么功能呢?
转自: Java File.listFiles方法具有什么功能呢? 下文笔者讲述java中File.listFiles方法的功能简介说明,如下所示: File.listFiles方法的功能:获取指定目 ...
- java File 读取本地文件 增删改查
java 读取本地文件 增删改查 这里删除不做删除,只是对文件进行重命名,只是物理意义不可见,实际存在 用的jfinal框架 /*** 列出指定路径的文件* @param path 路径* @retu ...
- Java File.createNewFile 创建文件的四种方式小笔记
本文为joshua317原创文章,转载请注明:转载自joshua317博客 Java File.createNewFile 创建文件的四种方式小笔记 - joshua317的博客 1.File(Str ...
- Java File createNewFile创建文件包含多层级目录报错
Java File createNewFile创建文件包含多层级目录报错 比如,需要创建一个包含目录层级结构的文件:c:\dira\dirb\dirc\file.txt 如果直接使用File的crea ...
- java修改file的名字_File类——JAVA实现批量修改文件名称
最近做了一道题目如下 批量修改文件名称 假设你某天跟朋友出去玩,使用某数码相机拍摄了一些照片 但是当你回来的时候你发现所有的照片都是如下命名的 P1020335.JPG P1020336.JPG P1 ...
- Java File类(文件操作类)详解
在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象,也就是说,如果希望在程序中操作文件和目录,则都可以通过 File 类来完成.File 类定义了一些方法来操作文件,如新 ...
- java file list listfiles,Java File listFiles()用法及代码示例
listFiles()方法是File类的一部分.如果路径名是目录,则该函数返回一个File数组,表示给定抽象路径名中的文件,否则返回null.该函数是重载函数.其中一个函数没有任何参数,第二个函数将F ...
- java语言实现修改文件名称的功能
感觉最近有点自卑,不行以后写文章的时候要给自己打鸡血,现在就来一句:「生命之灯因热情而点燃,生命之舟因拼搏而前行」. 上课的时候,老师展示了他那用 matlab 语言解决了学生交实验的文件名命名不规范 ...
- JAVA file列出所有文件_用Java代码列出一个目录下所有的文件
1.File类 File类在java.io.File包中,所以要导入这个包. File类中用到的方法: boolean isDirectory() 测试此抽象路径名表示的文件是否是个目录 ...
- 如何通过Java批量重命名文件名称
日常生活中,我们需要大量重命名文件名称时,如果手动一个个修改,太过浪费时间,我们可以通过写一个Java类,简单执行来实现批量重命名文件名称,我们先指定需要需要重命名文件的路径,将所有文件读取出来,循环 ...
最新文章
- 计算几何题中的英语生词
- C#中更改DataTable某列的值,格式化显示指定列的数据
- AUTOSAR从入门到精通100讲(四十一)-动态架构设计中的时序图
- fastJson性能测试
- YOLOv4 | 用C++ 和OpenCV 实现视频目标检测
- 一种在智能对话中实现上下文功能的方法
- 英伟达发布迁移学习工具包,现在可以申请早期试用
- haar的简单应用(1)
- UVA 1449 - Dominating Patterns AC自动机
- java html转word的坑 poi样式丢失还乱码
- html5gps定位经纬度,html5 定位 获得当前位置的经纬度
- 通过 purge_relay_logs 自动清理relaylog
- quoted-printable解码程序
- iterm2分屏切换
- 网易云音乐接入微信状态
- 使用Spreadsheet操作Excel
- 使用calibre导出pdf格式时调整行间距
- 西安交通大学915考研编程笔记
- 工业机器人市场需求 将推动建材市场发展
- 嵌入式软件调试之软件断点
热门文章
- c/c++编译的程序占用的内存分配
- 使用wsimport构建WebService客户端
- 阶段3 2.Spring_03.Spring的 IOC 和 DI_8 spring中bean的细节之生命周期
- 阶段3 1.Mybatis_06.使用Mybatis完成DAO层的开发_3 Mybatis中编写dao实现类的使用-修改删除等其他操作...
- VC CUtilityLZW 效率还行的LZW压缩算法,随机数加密
- sqldeveloper不能启动,显示Unable to create an instance of the Java Virtual Machine...的解决办法...
- 自动化测试-selenium初始化Driver参考
- ESS And 迅雷5 让我不能上网
- 发点牢骚,关于微软,关于WPF/E
- *SQL Server系统表的应用