File类的概述及其功能

File类的概述

它是文件和目录路径名的抽象表示,文件和目录是可以通过File封装成对象的。对于File而言,其封装的并不是一个真正的文件,仅仅是一个路径名,他可以是存在的,也可以是不存在的,将来要通过具体的操作把这个路径的内容转化成具体存在的。

构造方法:

     public File(String pathname)
        通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。 如果给定的字符串是空字符串,则结果是空的抽象路径名。
    public File(String parent,String child)
        从父路径名字符串和子路径名字符串创建新的File实例。
    public File(File parent,String child)
        从父抽象路径名和子路径名字符串创建新的File实例。

public class FileDemo1 {
    public static void main(String[] args) {
/*                    public File(String pathname)
        通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
        如果给定的字符串是空字符串,则结果是空的抽象路径名。*/
//        F:\a.txt,把这个路径下的文件封装成一个对象
        File file = new File("F:\\a.txt");
        System.out.println(file);
/*                    public File(String parent,String child)
        从父路径名字符串和子路径名字符串创建新的File实例。*/
        File file1 = new File("F:\\Demo", "b.txt");
        System.out.println(file1);
/*                    public File(File parent,String child)
        从父抽象路径名和子路径名字符串创建新的File实例。*/
        File file2 = new File("F:\\Demo");
        File file3 = new File(file2, "b.txt");
        System.out.println(file3);
    }}

创建功能

    public boolean createNewFile() 创建文件
    public boolean mkdir() 创建文件夹
    public boolean mkdirs() 创建多级文件夹

public class FileDemo2 {
    public static void main(String[] args) {
        //需求:我想在F盘下面创建一个文件夹demo2
        //封装成File对象,不需要文件或者目录是否已经存在,它只是将一个路径抽象的用File表示
        //将来你可以用File类中的一些方法,来进行创建或者删除
        File file = new File("F:\\Demo2");
        //public boolean mkdir()
        // 创建由此抽象路径名命名的目录,如果目标文件夹已经存在,就不创建了,返回false
        boolean mkdir = file.mkdir();
        System.out.println(mkdir);
        //public boolean createNewFile()
        // 当且仅当具有该名称的文件尚不存在时,原子地创建一个由该抽象路径名命名的新的空文件。
        try {
            System.out.println(file.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }
        //需求2:我想在F盘下面的demo2文件夹中创建一个文件b.txt
        //将目标文件封装成File对象
        File file1 = new File("F:\\Demo2\\b.txt");
        try {
            System.out.println(file1.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();
        }
        //public boolean mkdirs() 创建多级文件夹
        File file2 = new File("F:\\Demo2\\bigdate\\day23");
        System.out.println(file2.mkdirs());
        //注意1:要想在某个目录下创建文件,前提是该目录必须存在!!

        File file3 = new File("F:\\Demo3\\b.txt");
        try {
            System.out.println(file3.createNewFile());
        } catch (IOException e) {
            e.printStackTrace();//系统找不到指定的路径
        }
        //注意2:将来你要搞清楚是想要创建文件还是创建文件夹
    }
}

删除功能:

public boolean delete()

        //需求:我想要删除aaa这个文件夹
        //注意:要删除的目录必须是空
        File aaa = new File("aaa");
        System.out.println(aaa.delete());

重命名功能

public boolean renameTo(File dest)

        File file = new File("F:\\Demo\\b.txt");
        File file1 = new File("F:\\Demo\\改名.txt");
        System.out.println(file.renameTo(file1));

判断功能

    public boolean isDirectory()
    public boolean isFile()
    public boolean exists()
    public boolean canRead()
    public boolean canWrite()
    public boolean isHidden()

public class FileDemo5 {
    public static void main(String[] args) {
        /*public boolean isDirectory()//判断是不是文件夹*/
        File file = new File("F:\\Demo");
        System.out.println(file.isDirectory());
//        public boolean isFile()
        //判断是不是一个文件
        System.out.println(file.isFile());
        File file1 = new File("F:\\Demo\\改名.txt");
        System.out.println(file1.isFile());
//        public boolean exists(),判断目标文件或者文件夹是否存在
        File file2 = new File("F:\\Demo1");
        System.out.println(file2.exists());
//        public boolean canRead()
//判断目标是否可读
        System.out.println(file1.canRead());
//        public boolean canWrite()
//判断是否可写
        System.out.println(file1.canWrite());
//        public boolean isHidden()
    //判断是否隐藏
        System.out.println(file1.isHidden());
    }
}

基本获取功能

    public String getAbsolutePath()
    public String getPath()
    public String getName()
    public long length()
    public long lastModified()

        File file = new File("F:\\Demo2\\b.txt");
//        public String getAbsolutePath(),获取绝对路径
        System.out.println(file.getAbsoluteFile());
//        public String getPath(),获取相对路径
        System.out.println(file.getPath());
//        public String getName(),获取名称
        System.out.println(file.getName());
//        public long length(),获取字节数
        System.out.println(file.length());

特别需要注意这里lastModelified方法返回的是一个时间戳,并且格式并不是我们熟悉的格式,所以我们要对时间进行格式转换

//        public long lastModified(),返回的是一个时间戳,精确到毫秒
        System.out.println(file.lastModified());

        Date date = new Date(file.lastModified());
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(date));

高级获取功能

public String[] list(),获取指定目录下的所有文件和文件夹的名称组成的数组

        File file = new File("F:\\Demo2");
        String[] list = file.list();
        for (String s : list) {
            System.out.println(s);
        }


public File[] listFiles(),获取指定目录下的所有文件和文件夹形成的File对象数组

        File[] files = file.listFiles();
        for (File file1 : files) {
            System.out.println(file1);
        }

文件名称过滤器的实现思想及代码

public String[] list(FilenameFilter filter)
public File[] listFiles(FilenameFilter filter)

        String[] list = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
//                return false;
                File file1 = new File(dir, name);
                boolean file2 = file1.isFile();
                boolean b = name.endsWith(".jpg");
                return file2 && b;
            }
        });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值