【Java】之File类

个人主页:天寒雨落的博客_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的朋友可以联系我,互相讨论,一起进步!!!

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

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 17
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天寒雨落

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值