这是一个可怕的问题(在我看来),我尽力为自己找到有用的文档,但运气不佳 - 无论如何,这里是:
我有代码需要对目录中的所有文件执行一些操作。我将目录设置为Fileobject 并使用 fileObject.list() 迭代目录中的文件。我让这段代码运行了一夜,它(经过多次运行)在某个时候崩溃了。我试图弄清楚这件事发生在什么时候(是的,我的日志记录很糟糕)。现在,根据这个javadoc列出文件时不能保证顺序(按字母顺序或其他顺序),我想知道是否有一致性保证?这意味着当我运行相同的代码两次时,我会得到完全相同的文件顺序吗?逻辑告诉我应该这样做,我已经根据这一点恢复了运营,但我对此表示怀疑。另外,我很好奇 javadoc 中的“无特定顺序意味着什么”。
该语言意味着您不应依赖订单的任何属性,包括运行之间的一致性。
如果某些内存数据结构中存在文件链接列表,则驱动程序可能会将最近访问的文件移动到列表的前面,以优化重复的文件访问。即使没有修改任何文件,这也可能会更改文件列出的顺序。
如果你想要一致的顺序,你可以这样做
Arrays.sort(
myFileArray,
new Comparator<File>() {
public int compare(File a, File b) {
return a.getName().compareTo(b.getName());
}
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)