Java listFiles()默认读取目录中的文件的顺序是什么?

Java listFiles()默认读取目录中的文件的顺序是什么?,java,java-io,Java,Java Io,我制作了以下程序,它读取目录中的所有文件。 所有文件名都由数字组成(例如10023134.txt) 我想知道默认情况下,目录中的文件的读取顺序 程序似乎既不按数字顺序也不按创建日期顺序读取文件 文件的顺序很可能是操作系统默认的顺序(或列表中立),并且取决于操作系统如何将文件列表返回给Java 无法保证文件的返回顺序 您可以使用Arrays.sort(T[]Comparator,如中所述: 无法保证结果数组中的名称字符串 将以任何特定顺序出现;特别是, 保证按字母顺序出现 如果你想把它们分类,你必

我制作了以下程序,它读取目录中的所有文件。 所有文件名都由数字组成(例如10023134.txt)

我想知道默认情况下,目录中的文件的读取顺序


程序似乎既不按数字顺序也不按创建日期顺序读取文件

文件的顺序很可能是操作系统默认的顺序(或列表中立),并且取决于操作系统如何将文件列表返回给Java

无法保证文件的返回顺序

您可以使用
Arrays.sort(T[]Comparator,如中所述:

无法保证结果数组中的名称字符串 将以任何特定顺序出现;特别是, 保证按字母顺序出现

如果你想把它们分类,你必须自己分类

请注意,如果使用默认排序,根据您的操作系统,您仍然会得到不同的结果。同样,从:

此方法定义的顺序取决于基础 在UNIX系统上,字母大小写在比较 路径名;在Microsoft Windows系统上不是


文件按操作系统的自然顺序排序。可能是创建顺序。 如果您想对列表进行排序,可以调用

File[] files = Arrays.sort(dir.listFiles())
对于另一种排序顺序,请随意使用您自己的
比较器

注意。

为什么不打印文件名并亲自查看呢?虽然这可能适用于该方法的大多数实现,但文档中没有任何内容可以保证这一点behavior@SillyFreak这是真的,这也没什么在文件中说的这样或那样,然后,订单是不保证
File[] files = Arrays.sort(dir.listFiles())