永发信息网

Java:为什么在Linux中读取文件的顺序有差异呢

答案:2  悬赏:0  手机版
解决时间 2021-12-31 02:06
  • 提问者网友:龅牙恐龙妹
  • 2021-12-30 13:31
在Linux文件夹下写入文件0、1、2、3、4,5、6、7、8、9,但是遍历读取该文件夹下文件读取到的顺序却是1、5、9、8、2、3、6、4、7、0,所以为遍历代码加上了TreeMap以为这样就可以按顺序读取出来了,但是输出结果却只是0、3、4、7、8

import java.io.File;
import java.util.TreeMap;

public class Read {
public static void main(String[] args) {
//output("/usr/local/file");
output("E:/file");
}

public static void output(String dir) {
try {
TreeMap tm = new TreeMap();
File file = new File(dir);
File[] files = file.listFiles();
if (0 == files.length) {
return;
}
for (int i = 0; i <= files.length - 1; i++) {
Long modifytimeL = new Long(files[i].lastModified());
tm.put(modifytimeL, files[i]);
}
java.util.Iterator it = tm.keySet().iterator();
while(it.hasNext())
{
Long timeKey = it.next();
File tempFile = tm.get(timeKey);
System.out.println(tempFile.getName());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

为什么会这样呢?

PS:在Windows环境中上代码可以正常输出0~9的文件,但在Linux环境中却只输出了5个
最佳答案
  • 五星知识达人网友:空山清雨
  • 2021-12-30 13:38
这个跟系统的底层实现有关系。
全部回答
  • 1楼网友:旧脸谱
  • 2021-12-30 14:31
期待看到有用的回答!
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯