2015-05-14 58 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... 
} 
相關問題