33.0File文件对象

目录

33.1什么是File对象?

33.2创建file对象

33.3增加

33.4删除

 33.5修改

33.6 查询

33.7 算法--递归调用


33.1什么是File对象?

java把对文件或文件夹的操作封装到File类中,该类中包含对文件|文件夹的所有增删改查的操作。

33.2创建file对象

public class TestFile {
    public static void main(String[] args) {
        //pathname:路径文件名。
        File file=new File("D:\\gz02\\AAA");
    }
}

33.3增加

package com.ykq.demo01;

import java.io.File;

public class TestFile {
    public static void main(String[] args) throws Exception{
//        //pathname:路径文件名。
//        File file = new File("D:\\gz02\\AAA\\a.txt");
//        //增加文件
//        boolean newFile = file.createNewFile();

        File file=new File("D:\\gz02\\AAA\\a\\b\\c\\d");
        //创建文件夹--单个文件夹
        boolean mkdir = file.mkdir();
        System.out.println(mkdir);
        //创建多层文件夹
        boolean mkdirs = file.mkdirs();
        System.out.println(mkdirs);

        File file1=new File("D:\\gz02\\AAA\\f");
        file1.createNewFile();
        //注意: 跟后缀没有任何关系只跟您调用的方法有关
    }
}

33.4删除

package com.ykq.demo01;

import java.io.File;


public class TestFile02 {
    public static void main(String[] args) throws Exception {
        //绝对路径: 包含盘符。
        File file01=new File("D:\\gz02\\AAA\\a.txt");
        file01.delete();//删除文件

        File file02=new File("D:\\gz02\\AAA\\f");
        file02.deleteOnExit();//当程序退出时才会删除

//        Thread.sleep(20000);休眠
        File file03=new File("D:\\gz02\\AAA\\a");
        file03.delete();//删除空目录


        //相对路径:
        File file04=new File("a.txt");
        file04.createNewFile();

        File file05=new File("a\\b\\c");
        file05.mkdirs();
    }
}

 33.5修改

public class TestFile03 {
    public static void main(String[] args) throws Exception {
        //绝对路径: 包含盘符。
        File file01=new File("a.txt");

//        file01.setReadOnly();//设置file01该文件只读
//        file01.setWritable(true);//设置文件可写
//        file01.setReadable(true);//设置文件读取

         file01.renameTo(new File("b.txt"));//重命名
    }
}

33.6 查询

package com.ykq.demo01;

import java.io.File;
import java.util.Arrays;

/**
 * @program: day1114
 * @description:
 * @author: 闫克起2
 * @create: 2023-11-14 17:00
 **/
public class TestFile04 {
    public static void main(String[] args) throws Exception {
        //绝对路径: 包含盘符。
        File file01=new File("D:\\gz02\\AAA");
//        File file01=new File("b.txt");
//        file01.createNewFile();

        String name = file01.getName();//查询文件名
        System.out.println("文件名:"+name);

        String parent = file01.getParent();//获取文件的父路径
        System.out.println("父路径:"+parent);

        String path = file01.getPath();//获取文件相对路径
        System.out.println("文件的相对路径:"+path);

        String absolutePath = file01.getAbsolutePath();//获取绝对路径
        System.out.println("绝对路径:"+absolutePath);


        boolean directory = file01.isDirectory();//判断该文件是否为目录
        System.out.println("判断是否为目录:"+directory);

        boolean file = file01.isFile();//判断是否为文件
        System.out.println("判断是否为文件:"+file);

        String[] list = file01.list();//列出改文件下的所有子文件或目录名称

        System.out.println(Arrays.toString(list));

        File[] files = file01.listFiles();//列出该文件下的所有子文件或目录对象

        for (File f:files){
            System.out.println(f);
        }
    }
}

33.7 算法--递归调用

 方法自己调用自己。1~100和

public class Test05 {
    public static void main(String[] args) {
        int fun = fun(100);
        System.out.println("和:"+fun);
    }
    public static int fun(int n){
        if(n==1){
            return 1;
        }
        return fun(n-1)+n;
    }
}

显示指定目录下的所有文件。D:/AAA下所有的文件↓

public class Test06 {
    public static void main(String[] args) {
        showAllFile("D:\\alipay.trade.wap.pay-java-utf-8");
    }
    public static void showAllFile(String path){
        //根据路径创建一个文件对象
        File file=new File(path);
        //2.判断该文件是否为文件
        if(file.isFile()){
            return;
        }

        //3. 列出该目录下所有的文件对象
        File[] files = file.listFiles();
        for(File f:files){
             //还是目录
             if(f.isDirectory()){
                 System.out.println(f.getAbsolutePath()+"   <dir>");
                 showAllFile(f.getAbsolutePath());
             }else{
                 System.out.println(f.getAbsolutePath());
             }
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光明是人的信仰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值