File类的使用+代码

File类

  • 概念:代表物理盘符中的一个文件或者文件夹。
  • 方法:
    • createNewFile() //创建一个新文件夹
    • mkdir() //创建一个新目录
    • delete() //删除文件或空目录
    • exists() //判断File对象所代表的对象是否存在
    • getAbsolutePath() //获取文件的绝对路径
    • getName() //取得名字
    • getParent() // 获取文件/目录所在的目录
    • isDirectory() //是否是文件
    • length() //获取文件的长度
    • listFiles() //列出目录中的所有内容
    • renameTo() //修改文件名为

File类的使用

  • 1.分隔符
  • 2.文件操作
  • 3.文件夹操作
  • FileFilter接口的使用
/**
 * File类的使用
 * 1.分隔符
 * 2.文件操作
 * 3.文件夹操作
 * */
public class Demo1 {
    public static void main(String[] args) throws Exception {
        //separator();
        //fileOpe();
        directoryOpe();
    }

    //1分隔符
    public static void separator(){
        System.out.println("路径分隔符" + File.pathSeparator);
        System.out.println("名称分隔符" + File.separator);
    }
    //2文件操作
    public static  void fileOpe() throws Exception{
        //1创建文件  createNewFile()
        File file = new File("e:\\file.txt");  //只是创建了文件对象,这个文件实际在电脑中是不存在的
//        File file = new File("file.txt");  //直接在java文件中创建文件。
        //System.out.println(file.toString());
        if(!file.exists()){  //不存在就创建(存在就创建加了!后就取反了)
            boolean b = file.createNewFile();  //创建文件
            System.out.println("创建结果:" + b);//返回true就是创建成功
        }

        //2删除文件
        //2.1直接删除
//        System.out.println("删除结果:" + file.delete());  //delete直接删除
        //2.2使用jvm退出删除
//        file.deleteOnExit();  //jvm退出时自动删除
//        Thread.sleep(5000);  //休眠5秒
        //3获取文件信息
        System.out.println("获取文件的绝对路径" + file.getAbsolutePath());//获取文件的绝对路径
        System.out.println("获取路径:" + file.getPath());
        System.out.println("获取文件名称:" + file.getName());
        System.out.println("获取父目录:" + file.getParent());
        System.out.println("获取文件长度:" + file.length());
        System.out.println("文件创建时间:" + new Date(file.lastModified()).toLocaleString());  //转成date类型

        //4判断
        System.out.println("是否可写:" + file.canWrite());
        System.out.println("是否是文件:" + file.isFile());
        System.out.println("是否隐藏:" + file.isHidden());
    }
    //3文件夹操作
    public static void directoryOpe() throws InterruptedException {
        //1创建文件夹
        File dir = new File("e:\\aaa\\bbb\\ccc");
        System.out.println(dir.toString());
        if(!dir.exists()){
            //dir.mkdir();//创建单级目录
            System.out.println("创建结果:" + dir.mkdirs());//创建多级目录
        }
        //2删除文件夹
        //2.1直接删除(只能删除空目录)
//        System.out.println("删除结果:" + dir.delete());  //只能删除最里层的空文件夹
        //2.2使用jvm删除
//        dir.deleteOnExit();
//        Thread.sleep(5000);
        //3获取文件夹信息
        System.out.println("获取绝对理路径:" + dir.getAbsolutePath());
        System.out.println("获取路径:" + dir.getPath());
        System.out.println("获取文件夹名称" + dir.getName());
        System.out.println("获取父目录:" + dir.getParent());
        System.out.println("获取创建时间:" + new Date(dir.lastModified()).toLocaleString());
        //4判断
        System.out.println("是否是文件夹" + dir.isDirectory());
        System.out.println("是否是隐藏:" + dir.isHidden());
        //遍历文件夹
        File dir2 = new File("e:\\SAI画画");  //打印这个文件夹下的所有文件名
        String[] files = dir2.list();
        System.out.println("---------------");
        for (String string: files) {
            System.out.println(string);
        }
     //FileFilter接口
     System.out.println("------FileFilter接口的使用------");
     File[] files2 = dir2.listFiles(new FileFilter() {
         @Override
         public boolean accept(File pathname) {
          if(pathname.getName().endsWith(".jpg")){   //只打印jpg文件
                 return true;
             }
             return false;
         }
     });
     for (File file : files2) {
         System.out.println(file.getName());
     }
    }
}

递归遍历和递归删除文件夹

/**
 *案例1:递归遍历文件夹
 * 案例2:递归删除文件夹
 * */
public class ListDemo {
    public static void main(String[] args) {
        listDir(new File("e:\\aaa"));
        deleteDir(new File("e:\\aaa"));
    }
    public static void listDir(File dir){
        File[] files = dir.listFiles();
        System.out.println(dir.getAbsolutePath());
        if(files !=null && files.length>0){
            for (File file : files){
                if(file.isDirectory()){  //如果是文件夹就执行
                    listDir(file);  //递归
                }else{  //否则打印为文件名字
                    System.out.println(file.getAbsolutePath());
                }
            }
        }
    }
    //案例2:递归删除文件夹
    public static void deleteDir(File dir){
        File[] files = dir.listFiles();
        if(files != null && files.length>0){
            for (File file:files) {
                if(file.isDirectory()){
                    deleteDir(file);//递归
                }else{
                    //删除文件
                    System.out.println(file.getAbsolutePath() + "删除:" +file.delete());
                }
            }
        }
        //删除文件夹
        System.out.println(dir.getAbsolutePath() + "删除:" +dir.delete());
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值