【Java】之File类

2022-11-20 10:57:40 浏览数 (1)

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

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

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

目录

目录的遍历

public String[] list()

功能

举例

public File[] listFiles()

功能

举例

筛选器

FileFilter()

功能

举例

FilenameFilter()

功能

举例

常见实验题

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

举例

思路

一、用if语句判断筛选

二、用FileFilter()筛选器

三、用FilenameFilter()筛选器


目录的遍历

public String[] list()

功能

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

举例

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

代码

代码语言:javascript复制
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数组并输出

代码

代码语言:javascript复制
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语句判断筛选

代码

代码语言:javascript复制
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()筛选器

代码

代码语言:javascript复制
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 表达式简写: 

代码

代码语言:javascript复制
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()筛选器

代码

代码语言:javascript复制
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 表达式简写: 

代码

代码语言:javascript复制
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的朋友可以联系我,互相讨论,一起进步!!!

0 人点赞