File类

java.io.File类
文件和目录路径名的抽象表示形式,使用File类对文件和文件夹进行操作
用途:
1.创建一个文件/文件夹
2.删除文件/文件夹
3.获取文件/文件夹
4.判断文件/文件夹是否存在
5.对文件夹进行遍历
6.获取文件大小
File类是一个与系统无关的类
在这里插入图片描述
绝对路径:完整的路径(以盘符C,D等开始的路径)
相对路径:简化的路径(如果使用当前项目的跟目录,路径可以简化书写)
eg:C:\Users\itcast\IdeaProjects\123.txt可以简化成123.txt
注意
1.路径不区分大小写
2.路径中的文件名分隔符windows使用反斜杠\,反斜杠为转义字符,两个反斜杠代表一个普通的反斜杠

File类的构造方法
1.指定文件的路径名
方法声明:new File(String pathName)
参数说明:pathName是包含文件名的路径名
2.通过给定的父路径和子路径字符串,创建File对象
方法声明:new File(String parent,String child)
参数说明:parent是父路径字符串,child是子路径字符串
3.使用一个File对象与字符串创建File对象
方法声明:new file(File parent,String child)
参数说明:parent是父抽象路径名,child是子路径名字符串

File常用方法:
public String getAbsolutePath():返回此File的绝对路径名字字符串
public String getPath():将此File转换为路径名字字符串
public String getName():返回由此File表示的文件或目录的名称
public long length():返回此File表示的文件的长度
public boolean createNewFile():当且仅具有该名称的文件不存在时,创建一个新的空文件
public boolean delete():删除该文件或目录
public boolean mkdir():创建目录
public boolean mkdirs():创建目录,包含任何必须但是不存在的父目录
public boolean exists():该文件或目录是否存在
public boolean isDirectory():此File表示的是否为目录
public boolean siFile():此File表示的是否为文件
注意:delete方法的删除不走回收站,直接从硬盘上删除,所以删除须谨慎

File了遍历文件夹/目录功能:
public String[] list():返回一个String数组,表示该File目录下所有子文件或目录
public File[] listFiles():返回一个File数组,表示该File目录下所有子文件或目录
如果路径不存在或给出的路径不是一个目录,会抛出空指针异常

File file = new File(pathname:"c:\\Users\\itcast");
String[] arr = file.list();
for(String fileName : arr){
System.out.println(fileName);
}
File file = new File(pathname:"c:\\Users\\itcast");
File[] files = file.listFiles();
for(File f: files){
System.out.println(f);
}

递归
直接递归:当前方法内调用自己
间接递归:A方法调用B方法,B方法调用C方法,C方法调用A方法
注意:
1.递归要有条件限定,保证递归能停下来;
2.递归次数不能太多;
3.构造方法禁止递归

//计算1-n之间的整数和
public class Recursion {
    public static void main(String[] args) {
        int s = sum(10);
        System.out.println(s);
    }
    public static int sum(int n) {
        if (n == 1) {
            return 1;
        }
        return n + sum(n - 1);
    }
}

import java.io.File;
//递归打印多级目录
public class RecursionMulu {
    public static void main(String[] args) {

        File file = new File("D:\\javasoftware");
        getAllFile(file);
    }

    private static void getAllFile(File dir) {
        File[]files = dir.listFiles();
        for (File f:files
             ) {if(f.isDirectory()){
                 getAllFile(f);
        }
            else{
            System.out.println(f);
        }
        }
    }
}
 

FileFilter
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值