我正在尝试使用java nio读取目录中的所有文件,我具有以下目录结构
--dir1
|
-file1
-file2
-file3
现在我需要确保先读取file3,然后再读取file2,然后再读取file1,即我需要为文件分配一些优先级,然后首先读取较高优先级的文件,而不是读取较低优先级的文件,我如何实现呢?
最佳答案
您可以使用PriorityQueue
,因为我已经暗示过以简单的方式希望这可以解决您的问题
public class Test
{
public static void main(String[] args)
{
Comparator<String> comparator = new StringLengthComparator();
PriorityQueue<String> queue =
new PriorityQueue<String>(10, comparator);
queue.add("file3");
queue.add("file1");
queue.add("file2");
while (queue.size() != 0)
{
System.out.println(queue.remove());
}
}
}
听到我正在使用比较器比较您的情况
import java.util.Comparator;
public class StringLengthComparator implements Comparator<String> {
@Override
public int compare(String x, String y) {
if (x.equalsIgnoreCase("file3")) {
return -1;
}
if (x.equalsIgnoreCase("file1")) {
return 1;
}
return 0;
}
}
根据需要分配优先级并阅读。
结果
file3
file2
file1