java DirectoryStream返回路径的顺序是什么?文件名,上次修改,文件大小?
我正在尝试使用DirectoryStream读取文件夹中的多个文件。一共有10项
doc_01.txt, doc_02.txt, doc_03.txt, doc_04.txt, doc_05.txt, doc_06.txt, doc_07.txt, doc_08.txt, doc_09.txt, doc_10.txt
我想按照文件名的顺序读取文件。 DirectoryStream是否按照文件名的顺序读取文件?因为这是我得到的结果:
./mydata/doc_01.txt, ./mydata/doc_02.txt, ./mydata/doc_03.txt, ./mydata/doc_04.txt, ./mydata/doc_08.txt, ./mydata/doc_07.txt, ./mydata/doc_09.txt, ./mydata/doc_10.txt, ./mydata/doc_05.txt, ./mydata/doc_06.txt
这是我的代码:
public static void readData(){
Instant start = Instant.now();
System.out.println("Start reading");
Path path = Paths.get(String.join(File.separator, ".", "mydata"));
try(DirectoryStream<Path> stream =
Files.newDirectoryStream(path, "*.txt")
){
for(Path entry : stream){
System.out.println("reading: " +entry.toString());
}
}catch(IOException e){
System.err.println("Error: " + e.getMessage());
e.printStackTrace();
}
Instant end = Instant.now();
System.out.println("Done in " + Duration.between(start, end).toString());
}
# 1 楼答案
类DirectoryStream的javadoc 明确地说:
因此,如果您需要特定的顺序,则由您对
Path
进行排序。 例如,对于字母排序,您可以这样做: