【Java】之File类

news2024/11/13 9:28:25

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

 特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考!

 前篇回顾:【java】之File类_天寒雨落的博客-CSDN博客

 目录

目录的遍历

public String[] list()

功能

举例

public File[] listFiles()

功能

举例

筛选器

FileFilter()

功能

举例

FilenameFilter()

功能

举例

常见实验题

在指定目录筛选出需要的文件

举例

思路

一、用if语句判断筛选

二、用FileFilter()筛选器

三、用FilenameFilter()筛选器


 

目录的遍历

public String[] list()

功能

获取指定目录下的所有文件或者文件夹的名称(String对象)数组

举例

输出D盘的所有文件或者文件夹的名称

代码

package FileDemo;

import java.io.File;

public class FileDemo1 {
public static void main(String[] args) {
	File file=new File("D:\\");
	// public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
	String[] strArray = file.list();
	//遍历
	for (String s : strArray) {
		System.out.println(s);
	}
}
}

执行结果

public File[] listFiles()

功能

获取指定目录下的所有文件或者文件夹的File数组

举例

获取D盘目录下的所有文件或者文件夹的File数组并输出

代码

package FileDemo;

import java.io.File;

public class FileDemo1 {
public static void main(String[] args) {
	File file=new File("D:\\");
	// public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组
	File[] fileArray = file.listFiles();
	//遍历
	for (int i = 0; i < fileArray.length; i++) {
		System.out.println(fileArray[i].getName());
	}
}
}

执行结果 

 

筛选器

FileFilter()

功能

抽象路径名的过滤器,只有一个 accpet 方法,参数列表为(File pathname),返回满足指定过滤器的目录中的文件和目录。

举例

二、用FileFilter()筛选器

FilenameFilter()

功能

文件名筛选器,用于对列表中文件的过滤,只有一个 accpet 方法,参数列表为(File dir, String name),它用来测试指定的文件是否应包含在文件列表中

举例

三、用FilenameFilter()筛选器

常见实验题

在指定目录筛选出需要的文件

举例

过滤出D盘目录下(不包含子目录)所有后缀名为.jpg的文件并将其绝对路径输出到控制台

思路

         步骤1:封装e盘目录
         步骤2:获取该目录下所有文件或者文件夹的File数组
         步骤3:遍历该File数组,得到每一个File对象,然后判断
         步骤4:是否是文件
             是:继续判断是否以.jpg结尾
                    是:就输出该文件名称
                    否:不执行
              否:不执行

一、用if语句判断筛选

代码

package FileDemo;
import java.io.File;

public class FileDemo1 {

	public static void main(String[] args) {
		//封装D盘目录
		File file = new File("D:\\");
		//获取该目录下所有文件或者文件夹的File数组
		File[] fileArray = file.listFiles();

		for (File file2 : fileArray) {
			// 是否是文件
			if(file2.isFile()){
				//继续判断是否以.jpg结尾
				if(file2.getName().endsWith(".jpg")){
					System.out.println(file2);
				}
			}
		}	

	}

}

执行结果

二、用FileFilter()筛选器

代码

package FileDemo;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class FileDemo1 {

	public static void main(String[] args){
		File file=new File("D:\\");
		File[] fileArray=file.listFiles(new FileFilter() {
			
			@Override
			public boolean accept(File pathname) {
				// TODO Auto-generated method stub
				return pathname.isFile()&&pathname.getName().endsWith(".jpg");
			}
		});
		for (int i = 0; i < fileArray.length; i++) {
			System.out.println(fileArray[i].getPath());
		}
	}

执行结果

 

使用lambda 表达式简写: 

代码

package FileDemo;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class FileDemo1 {

	public static void main(String[] args){
		File file=new File("D:\\");
		File[] fileArray=file.listFiles((pathname)->pathname.isFile()&&pathname.getName().endsWith(".jpg"));
		for (int i = 0; i < fileArray.length; i++) {
			System.out.println(fileArray[i].getPath());
		}
	}

}

执行结果

 

三、用FilenameFilter()筛选器

代码

package FileDemo;
import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

public class FileDemo1 {

	public static void main(String[] args){
		File file=new File("D:\\");
		File[] fileArray=file.listFiles(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				return new File(dir,name).isFile()&&name.endsWith(".jpg");
				}
		}
			);
		for (int i = 0; i < fileArray.length; i++) {
			System.out.println(fileArray[i].getPath());
		}
	}

}

执行结果

使用lambda 表达式简写: 

代码

package FileDemo;

import java.io.File;
import java.io.FileFilter;

import java.io.FilenameFilter;
public class test1 {
public static void main(String[] args){
	File file=new File("D:\\");
	File[] fileArray=file.listFiles(
		(dir,name)->new File(dir,name).isFile()&&name.endsWith(".jpg")
);
	for (int i = 0; i < fileArray.length; i++) {
		System.out.println(fileArray[i].getPath());
	}
}
}

执行结果

 

各位学习java的朋友可以联系我,互相讨论,一起进步!!!

👍+✏️+⭐️是对博主最大的鼓励与支持!!!

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

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

相关文章

五 系统安全分析与设计

目录 一、安全基础技术 1.1 对称与非对称加密 1.2 数字签名&#xff08;防抵赖&#xff09; 1.3 信息摘要&#xff08;防篡改&#xff09; 1.4 加密、数字签名、信息摘要结合使用 1.5 数字证书&#xff08;防止公钥被截取篡改&#xff09; 二、网络安全 2.1 安全协议 …

Android LayerDrawable 使用

1. 前言 Android LayerDrawble 包含一个Drawable数组&#xff0c;系统将会按照这些Drawable对象的数组顺序来绘制他们&#xff0c;索引最大的 Drawable 对象将会被绘制在最上面。 LayerDrawable对象的xml文件的根元素是<layer-list>&#xff0c; 该元素内部包含多个<i…

【Linux】开发工具之gdb调试器

目录&#x1f308;前言&#x1f337;1、debug与release&#x1f338;2、gdb选项&#x1f308;前言 本篇文章进行调试器gdb的学习&#xff01;&#xff01;&#xff01; &#x1f337;1、debug与release debug会生成需要调试的信息&#xff0c;release不会生成 程序的发布方式有…

【Node.js】模块的加载机制

✍️ 作者简介: 前端新手学习中。 &#x1f482; 作者主页: 作者主页查看更多前端教学 &#x1f393; 专栏分享&#xff1a;css重难点教学 Node.js教学 从头开始学习 目录 模块的加载机制 优先从缓存中加载 内置模块的加载机制 自定义模块的加载机制 第三方模块的加载机…

2022年浙江省中职组“网络空间安全”赛项模块B--Linux系统渗透提权

2022年中职组浙江省“网络空间安全”赛项 B-3:Linux系统渗透提权一、竞赛时间 420分钟 共计7小时 吃饭一小时 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第①阶段: 单兵模式系统渗透测试 任务一: Windows操作系统渗透测试 任务二: Linux操作系统渗透测试 任务…

经典算法|水仙花数|自幂数

算法题目 水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数&#xff08;Armstrong number&#xff09;&#xff0c;水仙花数是指一个 3 位…

高精度RC振荡器的设计

1. 一些技术指标 应用于数字模拟混合信号芯片的高频率精度&#xff0c;高频率稳定度&#xff0c;全集成RC振荡器设计 由于数字电路指标仅与复杂度有关&#xff0c;此仅考虑模拟电路的设计指标。 项目Value电源电压2.5V~5.5V工作温度-40~125目标频率Ftyp 2MHZ频率精度&#x…

常用流媒体服务器

1、Mediasoup mediasoup是相对比较新的一个WebRTC服务器端的开源项目。它更多是通过集成包方式和其他应用服务器来集成。它支持SFU模式&#xff0c;主要支持视频聊天&#xff0c;媒体流广播等。 其特点是&#xff1a; 通过底层API实现和第三方集成&#xff0c;安装简单&#…

java自学第一天

1.1.体系&#xff1a; JavaSE&#xff08;J2SE&#xff09;&#xff08;Java2 Platform Standard Edition&#xff0c;java平台标准版&#xff09; JavaEE(J2EE)(Java 2 Platform,Enterprise Edition&#xff0c;java平台企业版) JavaME(J2ME)(Java 2 Platform Micro Edition&a…

如何提高代码交付效率,完成代码交付应用自动化?

为了提高代码交付效率&#xff0c;完成代码交付应用自动化&#xff0c;CoCode旗下Co-Project V2.5.0智能项目管理平台全新发布&#xff0c;新增CI/CD功能&#xff1a;Co-DevOps。 Co-DevOps是 CoCode 全新开发出的一项CI/CD功能&#xff0c;提供持续集成、持续交付&#xff08;…

六轴工业机器人

连杆原理 符号中文名含义aaa连杆长度两个相邻关节轴之间的公垂线的长度α\alphaα连杆转角两个相邻关节间轴之间形成的角度&#xff0c;右手定则前一个轴到后一个轴ddd连杆偏距两个相邻连杆之间的距离&#xff0c;高度差θ\thetaθ关节角两个相邻杆绕公共关节轴旋转的角度 机…

TypeScript-01基础知识

目录 一、ts与es、js之间的关系 二、TypeScript与JavaScript之间的区别 三、安装TypeScript编译器 四、执行typescript的步骤 五、ts的数据类型 1、类型别名 2、接口 接口 与 类型别名 的区别 3、类型断言 4、文字类型 不常用枚举、bigint、symbol 六、类型缩小 1、…

Linux socket 编程 UDP

套接字&#xff1a;操作系统向上层提供的用于实现网络通信的统称 网络通信其实本质上就是两台主机之间的通信其中一段是客户端&#xff0c;另一端是服务器 客户端&#xff1a;用户的一端&#xff0c;客户端是主动发出请求的一端 服务端&#xff1a;针对用户请求提供服务的一端…

Linux 进程控制

&#x1f9d1;‍&#x1f4bb;进程控制 &#x1f9d1;‍&#x1f4bb; 文章目录&#x1f9d1;‍&#x1f4bb;进程控制 &#x1f9d1;‍&#x1f4bb;一、进程创建1. fork函数2. fork常规用法3. fork创建子进程操作系统都做了什么&#xff1f;4. 写时拷贝5. 父子进程代码的共享…

String(二)————迭代器及相关接口使用

目录 string构造接口&#xff08;Construct string object&#xff09; string的元素访问&#xff08;读写&#xff09; 迭代器 string构造接口&#xff08;Construct string object&#xff09; string相比于C语言的字符数组要好用的多&#xff0c;无论是在初始化还是在读写…

排序5:直接选择排序

目录 排序思想&#xff1a; 演示图&#xff1a; 代码实现 总结&#xff1a; 排序思想&#xff1a; 在元素集合array[i]--array[n-1]中选择关键码最大(小)的数据元素 若它不是这组元素中的最后一个(第一个)元素&#xff0c;则将它与这组元素中的最后一个&#xff08;第一个…

SpringMVC---->自我实现底层机制(吃透springMVC)

目录 配套代码在资源中&#xff08;免费&#xff09; maven环境搭配 注解注入的规范&#xff1a; 一.开发HongDisptcherServlet前端控制器 1.说明&#xff1a; 2.配置web.xml文件 3.检查前期工作是否成功 二.完成客户端/浏览器请求控制层 1.创建 自己的 Controller 和…

【HTML+CSS+JS】模仿QQ登录界面

目录前言简介布局思路相关代码颜色渐变动画头像表单区域JS相关总结前言 学了HTML、CSS和JS有了一个月了&#xff0c;JS还未学完&#xff0c;偷懒写一个小项目&#xff0c;用了一个下午&#xff0c;顺便巩固一下所学知识。&#xff08;内容比较简陋&#xff0c;适合新手&#x…

基于火鹰优化算法的函数寻优算法

文章目录一、理论基础1、火鹰优化算法2、FHO算法伪代码二、仿真实验与结果分析三、参考文献一、理论基础 1、火鹰优化算法 文献[1]提出了火鹰优化算法(Fire Hawk Optimizer, FHO)作为一种新的元启发式算法&#xff0c;该算法基于啸鸢、麻鹰和褐隼的觅食行为&#xff0c;这些鸟…

【网络原理】网络编程Socket套接字基础知识汇总

目录 1.网络初始&#xff1a; 2.网络编程&#xff1a; 3.UDP数据报套接字&#xff1a; 4.TCP流套接字&#xff1a; 1.网络初始&#xff1a; 局域网&#xff08;LAN&#xff09;广域网&#xff08;WAN&#xff09;IP地址用于定位主机的网络地址。端口号可以标识主机中发送数…