java 文件排序算法(文件大小、文件名稱、文件創建日期)

java文件大小、名稱、日期排序方法

//按照文件大小排序	
public static void orderByLength(String fliePath) {
		List<File> files = Arrays.asList(new File(fliePath).listFiles());
		Collections.sort(files, 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;
				else
					return -1;
			}
			public boolean equals(Object obj) {
				return true;
			}
		});
		for (File f : files) {
			System.out.println(f.length());
		}
	}
//按照文件名稱排序
	public static void orderByName(String fliePath) {
		List<File> files = Arrays.asList(new File(fliePath).listFiles());
		Collections.sort(files, new Comparator<File>() {
			@Override
			public 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 f : files) {
			System.out.println(f.getName());
		}
	}
//按照文件日期排序
	public static void orderByDate(String fliePath) {
		File file = new File(fliePath);
		File[] fs = file.listFiles();
		Arrays.sort(fs,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;
				else
					return -1;
			}
			public boolean equals(Object obj) {
				return true;
			}
			
		});
		for (int i = fs.length-1; i >-1; i--) {
			System.out.println(fs[i].getName());
			System.out.println(new Date(fs[i].lastModified()).toLocaleString());
		}
	}


 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章