关于File类中常用方法和知识点
发布日期:2022-02-01 14:28:20 浏览次数:40 分类:技术文章

本文共 3446 字,大约阅读时间需要 11 分钟。

关于File类中常用方法和知识点

File中的List()方法和ListFile()方法的区别和使用

返回值类型 元素内容
List()方法中的返回值是String[]数组类型 string类型的【文件名】(包含后缀名)
Listfile()方法的返回值类型是File[]对象数组 File对象类型的【完整路径】

因此,遍历文件夹中所有文件,包括子文件夹中的文件时,最好用listFiles()方法,看起来更加明了,使用List方法的话不知道文件时哪个子文件夹下面的,因为只显示文件名。代码示例:

import java.io.File;public class Demo {    public static void main(String[] args) {        File file=new File("D:\\BaiduNetdiskDownload");        String[] list = file.list();        System.out.println("=========list()遍历结果========");        for (String s : list) {            System.out.println(s);        }        System.out.println("=====listfiles()遍历结果=========");        File[] files = file.listFiles();        for (File file1 : files) {            System.out.println(file1);        }    }}

两种运行结果如图:

在这里插入图片描述

File中过滤器FilenameFilter()和FileFilter的参数详解和使用

接口FileFilter

用于抽象路径名的过滤器,此接口的实例可传递给File类的listFiles(FileFilter)方法
方法:public boolean accept(File pathname) 可以对路径进行过滤

接口FilenameFilter

用于过滤文件名,Abstract Window Toolkit的文件对话框组件使用这些实例过滤File类的list方法中的目录清单。
方法:
public boolean accept(File dir, String name) 用于对文件名进行过滤

代码案例:

import java.io.File;import java.io.FileFilter;public class Demo {    public static void main(String[] args) {        //测试Filefilter接口        File file = new File("D:\\BaiduNetdiskDownload");        File[] files = file.listFiles(new FileFilter() {            @Override            public boolean accept(File pathname) {                if (pathname.canWrite()){                    return true;                } else {                    return false;                }            }        });        for (File file1 : files) {//遍历            System.out.println(file1);        }    }}

测试结果

在这里插入图片描述

import java.io.File;import java.io.FilenameFilter;public class Demo {    public static void main(String[] args) {        //测试FileNamefilter接口        File file = new File("D:\\BaiduNetdiskDownload");        File[] files = file.listFiles(new FilenameFilter() {            @Override            public boolean accept(File dir, String name) {                if(name.endsWith(".rar")){//过滤出来后缀为.rar的文件                    return true;                }else{                    return false;                }            }        });           for (File file1 : files) {//遍历            System.out.println(file1);        }            }}

测试结果:

在这里插入图片描述

File中递归查看和删除指定文件夹的所有文件

递归查看指定文件夹下的所有文件(包括子文件夹下的文件)

public static void main(String[] args) {        File file =new File("D:\\step1");        getFiles(file);public static void listDir(File dirl){        System.out.println(dir.toString());        File[] files = dir.listFiles();        if(files!=null&&files.length>0){            for (File file : files) {                if(file.isDirectory()){                    listDir(filel);                }else{                    System.out.println(file.toString());                }            }        }    }   }

递归删除指定文件夹下的所有文件(包括子文件夹下的文件)

public static void main(String[] args) {        File file =new File("D:\\step1");        deleteFiles(file); public static void deleteFile(File dir){        File[] files = dir.listFiles();        if(files!=null&&files.length>0){            //删除文件            for (File file : files) {                if(file.isDirectory()){                    deleteFile(file);                }else{                    System.out.println(file.toString()+":"+file.delete());                }            }            //把文件夹删除            System.out.println(dir.toString()+":"+dir.delete());        }    }}}

转载地址:https://blog.csdn.net/shunshizhen120412/article/details/98872934 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:InputStreamReader和OutputStreamWriter 的区别和用法简介
下一篇:线程安全问题的三种解决方案

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月19日 16时06分33秒