个人主页:天寒雨落的博客_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的朋友可以联系我,互相讨论,一起进步!!!
👍+✏️+⭐️是对博主最大的鼓励与支持!!!