找出10个最大的文件并排序
来源:互联网 发布:算法设计与分析第五章 编辑:程序博客网 时间:2024/05/22 06:13
当磁盘空间不够的时候,我们需要删除一些比较大的文件。如何找到这些大文件呢?下面的代码能够帮你实现
import java.io.File;import java.util.ArrayList;import java.util.Collections;import java.util.List;public class FindTop10File {private static final double _1MB = 1024 * 1024;private static final double _50MB = 1024 * 1024 * 50;private static final String ROOT_DIR = "C:\\";private static List<WrapFile> list = new ArrayList<WrapFile>();public static void listFile(File f) {if (f != null && f.exists()) {if (f.isDirectory()) {File[] file = f.listFiles();for (File ff : file) {listFile(ff);}} else if (f.isFile()) {if (f.length() >= _50MB) { // 如果文件大于50MWrapFile wrapFile = new WrapFile(f, f.length());list.add(wrapFile);}}}}public static void main(String[] args) {File file = new File(ROOT_DIR);listFile(file);Collections.sort(list, new WrapFileComparator());// 按文件大小排序int size = list.size() < 10 ? list.size() : 10;for (int i = 0; i < size; i++) {System.out.println(list.get(i).getFile().getAbsolutePath());System.out.println(list.get(i).getLength() / _1MB + "MB");}}}
import java.io.File;public class WrapFile {File file;long length;public File getFile() {return file;}public void setFile(File file) {this.file = file;}public long getLength() {return length;}public void setLength(long length) {this.length = length;}public WrapFile(File file, long length) {super();this.file = file;this.length = length;}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + ((file == null) ? 0 : file.hashCode());result = prime * result + (int) (length ^ (length >>> 32));return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;WrapFile other = (WrapFile) obj;if (file == null) {if (other.file != null)return false;} else if (!file.equals(other.file))return false;if (length != other.length)return false;return true;}}import java.util.Comparator;public class WrapFileComparator implements Comparator {@Overridepublic int compare(Object o1, Object o2) {return (int) (((WrapFile) o2).getLength() - ((WrapFile) o1).getLength());}}
- 找出10个最大的文件并排序
- 在linux下如何找出最大的文件并排序
- 对1000000个数进行排序找出10个最大的数
- 对1000000个数进行排序找出10个最大的数---后记1
- 100亿个数字中找出最大的10个
- 找出N个数据中的最大的K个数据---堆排序
- 【数据结构】找出N个数据中最大的前k个数据(利用堆排序)
- 【数据结构】找出N个数据中最大的前k个数据(利用堆排序)
- 找出最大的数并统计个数
- 找出最大的5个值。
- 要求:给定一个文件,文件每一行为一个浮点数,找出最大的1万个
- 产生10个不重复的随机数并排序、选最大
- 读取文件并找出年龄最大的N个人-兰亭集市笔试题
- C语言: 键盘输入任意10个整数,找出最大数及最大数的序号。
- 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存,
- 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存,
- 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存
- 典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存,
- Hibernate 优化 小技巧
- LigerUi中关闭当前页!(自己备份,不是技巧!)
- ListView内容变化后的动态刷新
- android设置背景图片透明
- POJ 2828
- 找出10个最大的文件并排序
- 基类和派生类的赋值规则
- 通过修改linux系统默认的TCP或UDP mem大小解决开发板播放流媒体片源卡顿或马赛克问题
- Paip.断点调试MYSQL存储过程跟函数的解决方案大法
- ICE的5个服务
- JAVA NIO导致JAVA服务端程序无法关闭的奇怪问题
- 博弈论之Nim博弈与sg函数(一)
- 张孝祥java多线程视频笔记----传统线程互斥技术
- ZOJ:3721 Final Exam Arrangement