2015-05-14 62 views
1

在文件夹中我有三个文件A.txt,B.txt,C.txt。我正在执行下面提到的程序。为什么listFiles()在不同的平台中表现不同?

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。为什么同一个程序在不同的平台上表现不同?

+0

'listFiles()'调用列出文件夹/目录内所有文件的本地函数。根据文件系统和驱动器的不同,函数可能会返回一个无序的文件列表。 – GiantTree

回答

3

listFiles方法不保证任何顺序。不同的文件系统和操作系统可以进行不同的分类。

但是listFiles确实,但是,返回数组,排序与Arrays.sort()是可行的,因为File可比类,它默认的字典顺序路径名。

File[] files = path.listFiles(); 
Arrays.sort(files); 
for(File a : files) { 
    // same exit for all platforms... 
} 
相关问题