我正在尝试使用java nio读取目录中的所有文件,我有以下目录结构
--dir1
|
-file1
-file2
-file3
现在我需要确保file3首先被读取然后是file2然后是file1,即我需要为文件分配一些优先级,然后首先读取优先级较高的文件而不是优先级较低的文件,我怎么能实现这个目标?
答案 0 :(得分:1)
您可以使用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