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

news2025/7/13 3:22:07

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

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]);
        }
}

输出

在这里插入图片描述

在这里插入图片描述

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());
        }
    }
}

String getName()	
返回表示当前对象的文件名或路径名(如果是路径,则返回最后一级子路径名)

输出
在这里插入图片描述

在这里插入图片描述

  • 例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);
        }
	}
}

输出
在这里插入图片描述

  • 例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);
        }

    }
}

输出

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/36542.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hive之内部表外部表和分区表分桶表

Hive系列 第七章 内部表外部表和分区表分桶表 7.1 内部表和外部表 7.1.1 内部表和外部表的区别 1、创建的时候外部表加上external 2、删除表的时候&#xff0c;内部表会删除元数据信息和真实数据信息&#xff0c;外部表只会删除描述信息7.1.2 内部表和外部表的应用场景 1、…

【JAVA高级】——Druid连接池和Apache的DBUtils使用

✅作者简介&#xff1a;热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏&#xff1a;JAVA开发者…

HBase查询一张表的数据条数的方法

HBase查询一张表的数据条数的方法 文章目录HBase查询一张表的数据条数的方法0、写在前面1、HBase-Shell的count命令2、Scan操作获取数据条数3、执行Mapreduce任务4、Hive与HBase整合5、协处理器Coprocessor实现6、参考资料0、写在前面 Linux版本&#xff1a;Ubuntu Kylin 16.0…

国网云(华为组件)使用

一、国网云(华为组件)介绍 一、项目各项环境 各项环境的介绍 MRS-Hive:MRS支持在大数据存储量大,计算资源需要弹性扩展的场景下,用户将数据存储在OBS服务中。使用MRS集群仅做数据计算处理的存算分离模式。DWS(高斯200):云原生数据库Gauss DB(DWS)1:融合分析能力是云原…

分布式计算模型Mapreduce实践与原理剖析(二)

第二章 MapReduce核心组件实战 2.1 MapReduce中分区组件 需求&#xff1a;根据单词的长度给单词出现的次数的结果存储到不同文件中&#xff0c;以便于在快速查询 思路&#xff1a; 1、定义Mapper逻辑 2、定义Reducer逻辑 3、自定义分区Partitioner这个案例主要的逻辑在这个…

【kafka】一、kafka介绍

kafka概述 定义 kafka是一个分布式的基于发布/订阅模式的消息队列&#xff0c;主要应用于大数据实时处理领域。 消息队列 1&#xff09;解耦 允许你独立的扩展或修改两边的处理过程&#xff0c;只要确保它们遵守同样的接口约束。 2&#xff09;可恢复性 系统的一部分组件…

java EE初阶 —进程与线程的区别

文章目录1.为什么会引入进程和线程的概念2.进程和线程的关系2.1 坤坤吃鸡演示进程和线程区别2.1.1 线程的安全问题2.1.2 线程的异常问题1.为什么会引入进程和线程的概念 引入进程这个概念&#xff0c;最主要的目的是为了解决并发编程这样的问题。 CPU 已经进入了多核心的时代&…

【Keil】编译选项设置 Warning 为 error

死亡是一座永恒的灯塔&#xff0c;不管你驶向何方&#xff0c;最终都会朝它转。一切都将逝去&#xff0c;只有死神永生。 – 刘慈欣-《三体》 前言 众所周知&#xff0c;一般而言&#xff0c;编译程序过程中的 warning 警告并不会影响可执行文件的生成&#xff0c;只有 error …

JVM 垃圾回收器分类

目录 Serial收集器 Parnew收集器 Parallel Scavenge CMS收集器 G1收集器 Serial收集器 基本概念&#xff1a;Serial收集器是最基本、发展历史最久的收集器&#xff0c;这个收集器是采用复制算法的单线程的收集器。 重点&#xff1a;其采用复制算法和单线程。 单线程的收集…

01_SpringBoot简介及项目搭建

文章目录SpringBoot简介及项目搭建0x01_SpringBoot简介Spring优缺点springboot启动器0x02_Spring boot项目搭建方式1启动类和启动器的区别0x03_Spring boot项目搭建方式20x04_Spring boot项目搭建方式3&#xff08;最推荐&#xff09;SpringBoot简介及项目搭建 欢迎关注公众号…

MYSQL 数据库企业级架构演变史

从初级架构到中级架构原来有这么多次的升级&#xff0c;并且每一次的进阶都有其优缺点&#xff0c;文末还有对高级结构的理解&#xff0c;欢迎大家在评论区各抒己见&#xff5e; MySQL简介 MySQL 是一个关系型数据库管理系统&#xff0c;由瑞典 MySQL AB公 司开发&#xff0c;…

【强化学习论文合集】AAAI-2021 强化学习论文

强化学习&#xff08;Reinforcement Learning, RL&#xff09;&#xff0c;又称再励学习、评价学习或增强学习&#xff0c;是机器学习的范式和方法论之一&#xff0c;用于描述和解决智能体&#xff08;agent&#xff09;在与环境的交互过程中通过学习策略以达成回报最大化或实现…

九、【React基础】组件的生命周期

文章目录1、旧生命周期1.1、单组件生命周期1.1.1、生命周期1.1.1.1、初始化阶段&#xff1a;由 ReactDOM.render() 触发---初次渲染1.1.1.2、更新阶段&#xff1a;由组件内部 this.setSate() 或父组件重新render触发1.1.1.3、卸载组件&#xff1a;由 ReactDOM.unmountComponent…

流媒体传输 - RTP 荷载 H264

H264 码流结构 H264 码流是由很多 NAL Unit 组成&#xff0c;所有 NAL Unit 均存在一个八位数据的 NAL Unit Header &#xff0c;这八位数据也充当此 RTP 有效负载格式的有效负载头。一个 NAL Unit Header 的语法如下: ---------------|0|1|2|3|4|5|6|7|--------|F|NRI| Type…

深分页Scroll

ES对from size是有限制的&#xff0c;from和size二者之和不能超过1W 原理&#xff1a; fromsize在ES查询数据的方式&#xff1a; 第一步现将用户指定的关键进行分词。 第二步将词汇去分词库中进行检索&#xff0c;得到多个文档的id。 第三步去各个分片中去拉取指定的数据。耗…

JUC总结-基础篇

juc是什么&#xff1f; JUC是java.util.concurrent包的简称&#xff0c;在Java5.0添加&#xff0c;目的就是为了更好的支持高并发任务。让开发者进行多线程编程时减少竞争条件和死锁的问题&#xff01; juc脑图 juc总结 juc多数工具都是依赖volatile关键字保持可见性和禁止指…

ovs vxlan 时延和吞吐

设计云时到底要不要用vxlan&#xff0c;如果用vxlan到底要不要购买比较贵的smart nic做offload&#xff0c;采用软件vxlan还是硬件交换机vxlan&#xff0c;很难决策&#xff0c;这儿简单测试一下&#xff0c;给个参考&#xff0c;资源终究是有限的&#xff0c;成本还是有考虑的…

Flutter splash 屏幕

Flutter splash 屏幕 原文 https://medium.com/bedirhanssaglam/flutter-splash-screen-a8cafec52c8e 前言 启动画面通常被特别大的应用程序用来通知用户程序正在加载过程中。它们提供的反馈表明&#xff0c;一个漫长的过程正在进行中。有时&#xff0c;启动画面中的进度条会指…

【MYSQL】在线恢复主从复制方案

一、恢复前提 因复杂情况&#xff0c;从库无法从binlog中恢复主从复制关系&#xff0c;需要从备份文件中恢复。恢复过程的几个关键点为&#xff1a; 1、从库现有数据的清理。本方案采用覆盖的方式&#xff0c;导出时添加add-drop参数即可。还有一个方案是手动删除数据文件&…

1990-2021年全国各省外商直接投资水平

1990-2021年全国各省外商直接投资水平 1、包括全国30省&#xff0c;不含西藏 2、指标包括&#xff1a; 行政区划代码、长江经济带、年份、地区、经度、纬度、GDP(亿元)、外商直接投资(美元)(万美元)、人民币对美元汇率(美元1)(元)、外商直接投资(万元)、外商直接投资水平 3、…