Java Day9 File操作

1、File

1.1 创建File对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  //构建文件对象
        File file1=new File("E:/import/Keypoints/1.docx");
        //查看文件字节大小
        System.out.println(file1.length());
        //查看文件是否存在
        System.out.println(file1.exists());
        //也可以是文件夹对象
        File f1=new File("E:/import/Keypoints/1");
        System.out.println(f1.length());//文件夹的话 并不是说文件夹里存放文件的所有大小 而是而文件夹存放里边文件信息的大小 类似操作系统文件控制块...
        //对于在该模块下的文件 可以直接写相对路径
        File file=new File("hello-app\\cy.txt");
//        File file=new File("E:\\java_code\\project\\hello-app\\cy.txt");
        System.out.println(file.length());
        //也可以指向一个不存在文件
        File f2=new File("D:/a");
        System.out.println(f2.length());//0

        //文件分隔符  可以是 \\ 也可以是 /  也可以用通用的 会根据系统采用什么分隔符来确定
        File f3=new File("D:"+File.separator+"....");

1.2 常用方法


        //构建文件对象 指代某个文件
        File file1=new File("E:/import/Keypoints/1");
        File file=new File("hello-app/cy.txt");
        //文件是否存在
        System.out.println(file.exists());//true
        //是否是文件
        System.out.println(file.isFile());//true
        //是否是文件夹
        System.out.println(file1.isDirectory()); //true
        //获取文件名称(包含后缀
        System.out.println(file.getName());//cy.txt
        System.out.println(file1.getName());//1
        //获取文件大小,返回long类型字节数
        System.out.println(file.length());//3
        //返回最后修改时间
        long l = file1.lastModified();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        String format = simpleDateFormat.format(l);
        System.out.println(format);//2024/01/03 11:51:13

        //获取创建文件时使用的路径
        System.out.println(file.getPath());//hello-app\cy.txt
        System.out.println(file1.getPath());//E:\import\Keypoints\1
        //获取绝对路径
        System.out.println(file.getAbsoluteFile());//E:\java_code\project\hello-app\cy.txt
        System.out.println(file1.getAbsoluteFile());//E:\import\Keypoints\1

在这里插入图片描述

创建删除

在这里插入图片描述

   //创建新文件 如果创建成功返回true  如果存在或者创建失败 返回flase
        File f1=new File("D:/a.txt");
        boolean newFile = f1.createNewFile();
        System.out.println(newFile);//true
        //创建 一级文件夹
        File f2=new File("D:/aaa");
        System.out.println(f2.mkdir());
        //创建多级文件夹
        File f3=new File("D:/aaa/bbb/ccc/ddd");
        System.out.println(f3.mkdirs());
        //删除文件或者空文件夹 不能删除非空文件夹  可以删除非空文件
        System.out.println(f1.delete());//true
        System.out.println(f2.delete()); //fasle
        System.out.println(file.delete()); //true

遍历文件夹

在这里插入图片描述

  //将当前目录下的一级文件名 保存到一个String数组中
        File file4=new File("D:\\JAVA");
        String[] lists = file4.list();
        for (String list : lists) {
            System.out.println(list);
        }
        //将当前目录下的一级文件名 保存到一个File数组中

        File[] files = file4.listFiles();
        System.out.println(Arrays.toString(files)); //[D:\JAVA\api文档, D:\JAVA\jdk-17.0.8, D:\JAVA\jdk-17_windows-x64_bin.zip, D:\JAVA\ppt, D:\JAVA\激活码]
        for (File file2 : files) {
            System.out.println(file2.getName());//api文档  jdk-17.0.8  jdk-17_windows-x64_bin.zip ppt 激活码
        }

递归实现 多级遍历

   public  static void sort(File dir, String fileName){
        if(dir==null||!dir.exists()||dir.isFile()){
            return;}
        //目录存在 且目录里有一级目录 并且 目录不是文件
        File[] files = dir.listFiles();
        //文件不为空
        if(files!=null&&files.length>0){
            for (File file : files) {
//                System.out.println(file.getName());
                //如果是文件
                if(file.isFile()){
//                System.out.println(file.getName());
                    if(file.getName().contains(fileName)){
                        System.out.println("找到了,"+file.getAbsolutePath());
                    }}
                else {
//                System.out.println(file.getName());
                    sort(file, fileName);//递归查找。
                }
            }
        }
    }}

删除一个非空文件夹


 public static void delete(File file){
        if(!file.exists()||file==null)
            return;
        if(file.isFile())
            file.delete();
     File[] files = file.listFiles();
     if (files==null)
         return;//无权限
     for (File file1 : files) {
         delete(file1);
     }
     file.delete();


 }

文件夹无权限 返回null 文件夹 为空 length 为0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值