JAVAEE细细看 进阶 10 - IO、 File

1 篇文章 0 订阅

File

一. 概述:

它是文件和目录路径名的抽象表示

构造方法
-File(String pathName)
-File(String parent, String child)
-File(File parent, String child)

File file = new File("E://java//t.txt");
System.out.println(file);

File file1 = new File("E://java","t.txt");
System.out.println(file1);

File file2 = new File("E://java");
File file3 = new File(file2,"t.txt");
System.out.println(file3);

-creatNewFile() 文件不存在时帮你创建一个
-mkdir() 创建目录
-mkdirs() 创建多级目录
以上,如果不存在才创建,如果已经存在就不再创建,返回false

/需求1:我要在目录下创建一个文件java.txt
File file = new File("/Users/home/desktop/java.txt");
System.out.println(file.createNewFile());
System.out.println("--------");

//需求2:我要在目录下创建一个目录JavaSE
File file1 = new File("/Users/home/desktop/javaSE");
System.out.println(file1.mkdir());


//需求3:我要在目录下创建一个多级目录JavaWEB/HTML
File file2 = new File("/Users/home/desktop/JavaWEB/HTML");
System.out.println(file2.mkdirs());

-isDirectory() 是否是目录
-isFile() 是否是文件
-exists() 是否存在
-getAbsolutePath() 获取绝对路径
-getPath() 获取路径字符串
-getName() 目录名称
-list() String[] 目录下所有文件和文件夹的名称,组成的数组
-listFiles() File[]

File file = new File("/Users/thor/desktop");
System.out.println(file.isDirectory());  // true
System.out.println(file.isFile());       // false
System.out.println(file.exists());       // true

System.out.println(file.getAbsolutePath()); // /Users/thor/desktop
System.out.println(file.getPath());         // /Users/thor/desktop
System.out.println(file.getName());         // desktop

String[] list = file.list();
for (String s: list) {
    System.out.println(s);
}

File[] files = file.listFiles(); // 返回每个file
for (File fe: files) {
    System.out.println(fe.getName()); // 打印目录名称
}

-delete() 删除 既可以删文件,还可以删目录
如果要删除的目录下还有文件,必须先删除文件,才能删除目录

File file = new File("/Users/thor/desktop/java");
System.out.println(file.delete());
二. 递归
public class DiGuiDemo {
    public static void main(String[] args) {
        //回顾不死神兔问题,求第20个月兔子的对数
        //每个月的兔子对数:1,1,2,3,5,8,...
        int[] arr = new int[20];

        arr[0] = 1;
        arr[1] = 1;

        for (int i = 2; i < arr.length; i++) {
            arr[i] = arr[i - 1] + arr[i - 2];
        }
        System.out.println(arr[19]);

        System.out.println(f(20));

    }

    public static int f(int n){
        if (n == 1 || n == 2){
            return 1;
        } else {
            return f(n - 1) + f(n - 2);
        }
    }
}
三. 案例

遍历一个目录下,所有的内容

allFile(file);
public static void allFile(File file) {
    File[] files = file.listFiles();
    if (files != null){
        for (File fl: files) {
            if (fl.isDirectory()){
                allFile(fl);
            } else {
                System.out.println(fl.getAbsolutePath());
            }
        }

    }
}
四. 总结在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值