需求:
在控制台输出D盘中(不需要递归)所有的文件和目录名称。要求如下: 1. 目录(文件夹)显示在前,文件(非目录)显示在后 2. 按名称升序排列
代码:
package main;
import java.io.File;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.TreeSet;
public class Main {
/**
* 在控制台输出D盘中(不需要递归)所有的文件和目录名称。要求如下: 1. 目录(文件夹)显示在前,文件(非目录)显示在后 2. 按名称升序排列
*
* @param args
*/
public static void main(String[] args) {
File dir = new File("C:/Java");
fun(dir);
}
public static void fun(File dir) {
File[] files = dir.listFiles();
TreeSet<File> set = new TreeSet<>(new Comparator<File>() {
@Override
public int compare(File o1, File o2) {
return Collator.getInstance().compare(o1.getName(), o2.getName());
}
});
for (int i = 0; i < 2; i++) {
for (File f : files) {
if (i == 0 ? f.isDirectory() : f.isFile()) {
set.add(f);
}
}
for (File file : set) {
System.out.println(file);
}
set.clear();
}
}
}