您的位置:首页 > 其它

File类中的方法实现文件排序

2017-06-27 19:33 239 查看
package Rank;

import java.io.File;

import java.util.Scanner;

/**

 * 根据键盘录入的命令所指定的排序方法对文件进行排序

 */

public class Test {

    public static void main(String[] args){

        //创建File对象 指定文件夹"aaa"的文件路径

        File ff=new File("/home/author/aaa");

        //返回一个抽象路径名数组,文件夹“aaa”目录下的所有文件和目录的路径存入数组

        File[] ll=ff.listFiles();

        //创建Sort对象

        Sort so=new Sort();

        //创建Scanner对象  键盘录入

        Scanner sc=new Scanner(System.in);

        System.out.println("请输入命令:1---按文件名排序  2---按文件大小  3---按最后修改时间");

        int x=sc.nextInt();

        //switch 选择排序方法

        switch(x){

        case 1:so.paiXu1(ll);break;

        case 2:so.paiXu2(ll);break;

        case 3:so.paiXu3(ll);break;

        default:System.out.println("请输入正确的命令!");

        }

    }

}

package Rank;

import java.io.File;

/**

 * 提供几种文件排序的方法

 * 一、文件名按自然顺序排序

 * 二、按文件大小排序

 * 三、文件最后一次修改时间排序

 *

 */

public class Sort {

    //第一种排序方法  比较文件名 自然排序 按照文件名字符的ASCII码表值进行排序

    public void paiXu1(File[] ll){

        //for循环遍历数组ll中所有元素进行排序

        for(int i=0;i<ll.length;i++){

            for(int j=i+1;j<ll.length;j++){

                //利用comparTo()方法进行比较 返回值int型 有正数 负数 正数表示前者的ASCII值较大 0表示相等,负数表示前者的ASCII值小

                if(ll[i].compareTo(ll[j])>0){

                    //交换赋值

                    File fe;

                    fe=ll[i];

                    ll[i]=ll[j];

                    ll[j]=fe;    

                }

            }

            System.out.println(ll[i]);

        }

    }

    //第二中排序方法 按照文件大小排序

    public void paiXu2(File[] ll){

        //for循环遍历数组ll中所有元素进行排序

        for(int i=0;i<ll.length;i++){

            for(int j=i+1;j<ll.length;j++){

                //length()方法 返回文件的长度 也就是文件的大小  返回值是long型

                if(ll[i].length()<ll[j].length()){

                    //交换赋值

                    File fe;

                    fe=ll[i];

                    ll[i]=ll[j];

                    ll[j]=fe;

                }

            }

            System.out.println(ll[i]);

        }

    }

    

    //第三种排序方法 按最后一次修改的时间

    public void paiXu3(File[] ll){

        //for循环遍历数组ll中所有元素进行排序

        for(int i=0;i<ll.length;i++){

            for(int j=i+1;j<ll.length;j++){

                //lastModified()方法返回文件最后一次被修改的时间 毫秒 返回值是long型

                if(ll[i].lastModified()<ll[j].lastModified()){

                    //交换赋值

                    File fe;

                    fe=ll[i];

                    ll[i]=ll[j];

                    ll[j]=fe;

                }

            }

            System.out.println(ll[i]);

        }

    }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: