Java 为什么listFiles()在不同的平台上表现不同?
在一个文件夹中,我有三个文件a.txt、B.txt、C.txt。我正在执行下面提到的程序Java 为什么listFiles()在不同的平台上表现不同?,java,linux,windows,amazon-web-services,Java,Linux,Windows,Amazon Web Services,在一个文件夹中,我有三个文件a.txt、B.txt、C.txt。我正在执行下面提到的程序 for(File a: path.listFiles()){ System.out.println("List files"+a); } 如果我在windows机器上运行上述程序,我将得到输出A.txt、B.txt和C.txt。如果我在AWS EC2 Linux实例中运行相同的程序,我将得到输出A.txt、C.tct和B.txt。为什么相同的程序在不同的平台上表现不
for(File a: path.listFiles()){
System.out.println("List files"+a);
}
如果我在windows机器上运行上述程序,我将得到输出A.txt、B.txt和C.txt。如果我在AWS EC2 Linux实例中运行相同的程序,我将得到输出A.txt、C.tct和B.txt。为什么相同的程序在不同的平台上表现不同 listFiles方法不保证任何顺序。不同的文件系统和操作系统可以提供不同的排序 但是,
listFiles
返回一个数组,可与Arrays.sort()
一起排序,因为File
是可比较的类,默认情况下按字典顺序排序路径名
File[] files = path.listFiles();
Arrays.sort(files);
for(File a : files) {
// same exit for all platforms...
}
listFiles()
调用一个本机函数,该函数列出文件夹/目录中的所有文件。根据文件系统和驱动器的不同,该函数可能返回无序的文件列表。