比如说服务器的 text目录下有:朱元璋的辉煌人生1.txt,朱元璋的辉煌人生2.txt,朱元璋的辉煌人生3.txt 这3个文件。我现在是用
file = new File("/text");
files = file.listFiles();
这样3个文件就都放进files 里了,但是顺序是乱的,能否有一个方法是按文件名或更新时间取出所有文件呢???

解决方案 »

  1.   

    用Collections的sort排下序不行吗?
      

  2.   

    可以读到内存中,我们自己写个排序的方法来排序也可以关注一下这个方法: File[] listFiles(FileFilter filter) 
      

  3.   

    File[]   listFiles(FileFilter   filter)  这个方法中filter是文件过滤器 不负责文件排序建议将text目录下的所有文件的文件名取出,存到一个数组里String[] arr_fileName,
    然后对数组排序Arrays.sort(arr_fileName),
    至于更新时间的排序file.lastModified()同理
      

  4.   

    使用
    Arrays类的static <T> void 
     sort(T[] a, Comparator<? super T> c)Comparator的写法请参见
    http://zhidao.baidu.com/question/38961689.html
      

  5.   

    自己实现一个比较器。。
    具体看java编程思想
      

  6.   

    可以用 String[] list() 方法获得目录下文件列表
    排序这个String数组后或构造成File[]或直接使用
     
      

  7.   

    //最容易理解的方法:
    File f = new File("D:\\");
    String[] fs = f.list();//取文件名,免的过会又用getName取出//然后自己写一个排序的算法(一般都用冒泡吧) public String[] sort(String[] str_Array) {
    if(str_Array==null) {
    throw new NullPointerException("The str_Array can not be null!");
    }
    String tmp = "";
    for(int i=0;i<str_Array.length;i++) {
    for(int j=0;j<str_Array.length-i-1;j++) {
    if(str_Array[j].compareTo(str_Array[j+1])<0) {
    tmp = str_Array[j];
    str_Array[j] = str_Array[j + 1];
    str_Array[j + 1] = tmp;
    }
    }
    }
    return str_Array;
    }
    //然后
    fs = sort(fs);
    //最后就可以把结果输出了
    for(String ff:fs) {
    System.out.println(ff);
    }