java读取文件列表后排序

扫描文件目录得到文件集合List后排序时需要自定义规则(List集合不能对元素类型为File的进行排序)

核心方法:

Collections.sort(List list, Comparator c) 

备注:以下还对要扫描的文件进行过滤(即只取txt文件)

File file = new File(filePath);
File[] files = file.listFiles(new TxtFilter());
List sortfiles = Arrays.asList(files);
Collections.sort(sortfiles, new Comparator(){
	public int compare(File o1, File o2) {
	return o1.getName().compareTo(o2.getName());
	}
});

class TxtFilter implements FilenameFilter{
	public boolean accept(File filePath, String fileName) {			
		return isTxt(fileName);
	}		
	boolean isTxt(String fileName){
	       if(fileName.toLowerCase().endsWith("txt")){
		      return true;
		}
		return false;
	}		
}

后记:compareTo是String类中的方法

一般对扫描后的文件排序时按最后修改时间排序,此时需要对compareTo做转换操作(最后修改时间是long型,转换为String类型)

Collections.sort(sortfiles, new Comparator(){
        public int compare(File o1, File o2) {
	        String str1 = String.valueOf(o1.lastModified());
		String str2 = String.valueOf(o2.lastModified());
	        return str1.compareTo(str2);
	}
});




你可能感兴趣的:(Java)