我有一个文件夹,其中包含以时间戳命名的文件。
当我尝试浏览每个文件时,它会按字母顺序对它们进行排序并给出以下顺序:
/home/user/buffereddata/1
/home/user/buffereddata/100
/home/user/buffereddata/1000
/home/user/buffereddata/200
/home/user/buffereddata/2000
/home/user/buffereddata/300
但我希望它们像这样排序:
/home/user/buffereddata/1
/home/user/buffereddata/100
/home/user/buffereddata/200
/home/user/buffereddata/300
/home/user/buffereddata/1000
/home/user/buffereddata/2000
这是我的代码:
File file = new File(System.getProperty("user.home") + "/buffereddata");
if(file.exists()) {
File[] fileArray = file.listFiles();
Arrays.sort(fileArray);
for(File f : fileArray) {
System.out.println(f);
}
}
是否有一些(最好是简单的)方法以我想要循环文件的方式循环文件?
最佳答案
Arrays.sort(fileArray, new Comparator<File>() {
public int compare(File f1, File f2) {
try {
int i1 = Integer.parseInt(f1.getName());
int i2 = Integer.parseInt(f2.getName());
return i1 - i2;
} catch(NumberFormatException e) {
throw new AssertionError(e);
}
}
});
关于java - 排序文件 'numerically' 而不是在 java 中按字母顺序排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17339882/