我有Java数据库,如下所示
File[] fileList = new File("c:/data").listFiles();
fileList对象包含文件和目录。我想知道这些项目在fileList对象中的顺序(文件首先是目录,然后是目录,反之亦然)。
fileList对象中的项目顺序是每次都保持相同还是取决于任何因素?
提前致谢。
答案 0 :(得分:2)
如果你看一下docs,就会清楚地解释:
返回一个抽象路径名数组,表示此抽象路径名表示的目录中的文件。 如果此抽象路径名不表示目录,则此方法返回null。否则返回一个File对象数组,一个用于目录中的每个文件或目录。表示目录本身的路径名和目录的父目录不包含在结果中。每个生成的抽象路径名都是使用File(File,String)构造函数从此抽象路径名构造的。因此,如果此路径名是绝对的,那么每个结果路径名都是绝对的;如果此路径名是相对的,则每个结果路径名将相对于同一目录。
无法保证结果数组中的名称字符串会以任何特定顺序出现;特别是,它们不能保证按字母顺序出现。
答案 1 :(得分:1)
正如File#listFiles()
API中所述,建议在使用方法时检查API
无法保证结果数组中的名称字符串 将以任何特定顺序出现;特别是,它们不是 保证按字母顺序出现。
答案 2 :(得分:1)
listFiles方法,有或没有过滤器,不保证任何顺序。
但是,它会返回一个数组,您可以使用Arrays.sort()对其进行排序。为了首先获取目录,我将使用isDirectory
http://docs.oracle.com/javase/7/docs/api/java/io/File.html#isDirectory()