• 24.java- File类的常用方法:遍历目录里的文件


    遍历目录
    通过遍历目录可以在指定的目录中查找文件,或者显示所有的文件列表。

    1.File 类的 list()

    File 类的 list() 方法提供了遍历目录功能,该方法有如下两种重载形式。

    1. String[] list()
      该方法表示返回由 File 对象表示目录中所有文件和子目录名称组成的字符串数组,如果调用的 File 对象不是目录,则返回 null
      提示:list() 方法返回的数组中仅包含文件名称,而不包含路径。但不保证所得数组中的相同字符串将以特定顺序出现,特别是不保证它们按字母顺序出现。
    2. String[] list(FilenameFilter filter)
      该方法的作用与 list() 方法相同,不同的是返回数组中仅包含符合 filter 过滤器的文件和目录,如果 filter 为 null,则接受所有名称。

    在这里插入图片描述

    public class readbyte {
    
        public static void main(String[] args)  {
    
            File folder = new File("./target");
            String fileList[] = folder.list();
    
            for (int i = 0; i < fileList.length; i++) { // 遍历返回的字符数组
                System.out.println(fileList[i]);
            }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    输出

    在这里插入图片描述

    在这里插入图片描述

    2. File类的listFiles()

    listFiles()方法是File类的一部分。如果路径名是目录,则该函数返回一个File数组,表示给定抽象路径名中的文件,否则返回null。该函数是重载函数。其中一个函数没有任何参数,第二个函数将FilenameFilter对象作为参数,第三个函数将FileFilter对象作为参数

    函数签名:

    public File[] listFiles()
    public File[] listFiles(FilenameFilter f)
    public File[] listFiles(FileFilter f)

    函数语法:
    file.listFiles()
    file.listFiles(filter)
    参数:该函数是重载函数

    该函数之一没有任何参数,
    第二个函数将FilenameFilter对象作为参数,
    第三个函数将FileFilter对象作为参数
    返回值:该函数返回一个File数组,如果文件对象是一个文件,则返回null值。

    异常:如果不允许该函数对该文件进行读取访问,则此方法将引发Security Exception

    下面的程序将说明listFiles()函数的用法

    • 例1
      查找给定目录中的所有文件和目录

    在这里插入图片描述

    import java.io.File;
    
    public class readbyte {
    
        static String dirpath = "./test.txt";
        public static void main(String[] args)  {
    
            File folder = new File("./target");
            File[] listOfFiles = folder.listFiles();
    
            // Display the names of the files
            for (File f : listOfFiles) {
                String fileName = f.getName();
                System.out.println(fileName);
            }
            //这种方法也可以
            for (int i = 0; i < listOfFiles.length; i++) {
                System.out.println(listOfFiles[i].getName());
            }
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    String getName()	
    返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名)
    
    • 1
    • 2

    输出
    在这里插入图片描述

    在这里插入图片描述

    • 例2
      在给定目录中查找名称以“ (0,5)”开头的所有文件

    在这里插入图片描述

    import java.io.File;
    import java.io.FilenameFilter;
    
    public class readbyte {
    	 public static void main(String[] args)  {
     
    	  File folder = new File("./target");
    
            // Create a FilenameFilter
            FilenameFilter filter = new FilenameFilter() {
    
                public boolean accept(File f, String name)
                {
                    return name.startsWith("(0,5)");
                }
            };
    
            File[] listOfFiles = folder.listFiles(filter);
    
            System.out.println("Files are:");
    
            // Display the names of the files
            for (File f : listOfFiles) {
                String fileName = f.getName();
                System.out.println(fileName);
            }
    	}
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    输出
    在这里插入图片描述

    • 例3
      查找给定目录中的所有文件和目录,它们都是文本文件。
    import java.io.File;
    import java.io.FileFilter;
    public class readbyte {
    
    
        public static void main(String[] args)  {
    
            File folder = new File("./target");
    
            // Create a FileFilter
            FileFilter filter = new FileFilter() {
    
                public boolean accept(File f)
                {
                    return f.getName().endsWith("txt");
                }
            };
    
            // Get all the names of the files present
            // in the given directory
            // which are text files
            File[] listOfFiles = folder.listFiles(filter);
    
            System.out.println("Files are:");
    
            // Display the names of the files
            for (File f : listOfFiles) {
                String fileName = f.getName();
                System.out.println(fileName);
            }
    
        }
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    输出

    在这里插入图片描述

  • 相关阅读:
    APP逆向案例之(一)过 app 更新提示
    python项目中使用requirement.txt依赖提高项目的移植效率
    【总结】使用livy 提交spark任务时报错Connection refused
    R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化分组箱图、使用bgcolor函数自定义指定可视化图像的背景色
    计算机毕业设计基于springboot+java+vue的健身房课程预约信息网站
    java-websocket连接多个websocket server 自定义springboot
    定时器实现原理——时间轮
    aptos中文版白皮书-前Facebook团队打造明星公链,三个优势:Move语言、Move虚拟机、合约可升级
    【SQL Server】数据库开发指南(六)索引和视图的使用技巧、方法与综合应用
    centos 安装svn
  • 原文地址:https://blog.csdn.net/u014217137/article/details/128044606