File类——Java学习笔记

File类

java.io.File类是文件和目录路径名的抽象表示,它代表了磁盘上的一个目录或者文件。

  • 主要用于文件和目录的创建、查找、删除等操作

  • 构造方法:

    • public File(String pathname):根据指定字符串路径创建一个File对象
    • public File(String parent,String child):根据父路径和子路径字符串创建一个File对象
    • public File(File parent,String child):根据parent目录对象和子路径字符串创建一个File对象
        File file1 = new File("F:\\FileTest\\a.txt");
        File file2 = new File("F:\\FileTest","a.txt");
        File file3 = new File(file2,"\\t1\\b.txt");
  • 常用方法:

获取

返回值方法名说明
StringgetAbsolutePath()返回此File的绝对路径名的字符串
StringgetPath()返回此File文件路径的字符串
StringgetName()放回此File的文件名或者目录名
longlength()返回此File表示的文件长度
StringgetParent()返回此File的父目录

判断

返回值方法名说明
booleanexists()判断该File文件或目录是否真的存在
booleanisDirectory()判断该File是否为一个目录
booleanisFile()判断该File是否为一个文件
booleanisHidden()判断该File是否为隐藏文件
booleancanRead()判断该File是否可以读取
booleancanWrite()判断该File是否可以写入

创建和删除

返回值方法名说明
booleancreateNewFile()当该File对象存在时返回true,不存在时,创建一个该对象并返回false
booleandelete()删除该File对象对应的文件或者目录
booleanmkdir()创建一个目录
booleanmkdirs()可以创建一个多级目录
booleanrenameTO(File dest)重名名File为指定的dest对象

目录的遍历

返回值方法名说明
String[]list()返回FIle目录中所有的文件名或者目录名的字符串数组
File[]listFiles()返回FIle目录中所有的文件或者目录的File对象数组
  • listFIles(FilenameFilter filter)可以传入一个过滤器对象,将获取的所有目录或文件进行筛选后返回

    public class Test1{
        public static void main(String[]args){
            File file  = new File("F:\\FileTest");
            //返回这个目录下的所有文件和目录名的数组
            String[] str = file.list();
            for (String s:str){
                System.out.println(s);
            }
    
            //使用过滤器留下符合要求的文件返回文件对象的数组(使用匿名内部类实现接口,方便)
            File[] files2 = file.listFiles(new FilenameFilter() {
                @Override
                public boolean accept(File dir, String name) {
                    if (name.endsWith(".txt")){
                        return true;
                    }else {
                        return false;
                    }
                }
            });
            for (File f:files2){
                System.out.println("txt文件有:"+f.getName());
            }
        }
    }
    

练习:

搜索一个目录中所有的.Java文件

public class Exercise1 {
    public static void main(String[] args) {
        File file = new File("F:\\IdeaProject");
        souSuo(file);
    }
    public static void souSuo(File file){
        File[] files = file.listFiles();
        for (File f: files){
            //如果是目录地递归调用该方法
            if (f.isDirectory()){
                souSuo(f.getAbsoluteFile());
            }else {
                if (f.getName().endsWith(".java")){
                    System.out.println(f.getName());
                }
            }
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值