这是我的代码,它的工作原理!但我希望能够根据名称,大小,修改日期等对文件列表进行排序
import java.io.File;
import org.apache.commons.io.FileUtils;
public class StartingPoint {
public static void main(String[] args) {
File file = new File(
"/home/t/lectures");
File[] files = file.listFiles();
for (File f : files) {
System.out.println("File : " + f.getName() + " ["
+ FileUtils.byteCountToDisplaySize(f.length()) + "]");
}
}
}
Run Code Online (Sandbox Code Playgroud)
Luc*_*cas 12
Arrays.sort( files, new Comparator<File>() {
public int compare( File a, File b ) {
// do your comparison here returning -1 if a is before b, 0 if same, 1 if a is after b
}
} );
Run Code Online (Sandbox Code Playgroud)
您可以定义一堆不同的Comparator类来进行不同的比较,例如:
public class FileNameComparator implements Comparator<File> {
public int compare( File a, File b ) {
return a.getName().compareTo( b.getName() );
}
}
public class FileSizeComparator implements Comparator<File> {
public int compare( File a, File b ) {
int aSize = a.getSize();
int bSize = b.getSize();
if ( aSize == bSize ) {
return 0;
}
else {
return Integer.compare(aSize, bSize);
}
}
}
...
Run Code Online (Sandbox Code Playgroud)
然后你只需要交换em:
Arrays.sort( files, new FileNameComparator() );
Run Code Online (Sandbox Code Playgroud)
要么
Arrays.sort( files, new FileSizeComparator() );
Run Code Online (Sandbox Code Playgroud)