我正在尝试使用 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());
}