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

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]);
        }
    }
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值