File文件过滤的两种方法

package com.qinuo.io;

import java.io.File;
import java.io.FileFilter;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;

public class FileDemo
{
public static void main(String[] args) {
//创建File实体类

File file=new File("G:\CeShi");
//获取该目录文件列表
getAllFileLamda(file);
getAllFile(file);

}


public static void getAllFileLamda(File file)
{
File[] files = file.listFiles();
System.out.println("目录是:"+file.getPath());
System.out.println("一共"+files.length+"个文件");
//Arrays.asList把files数组变成列表集合
List<File> filesList = Arrays.asList(files);
System.out.println(filesList);
// 使用lamda遍历文件列表
filesList.stream().forEach(name-> System.out.println(name));
System.out.println("*******************************************");
// 使用lamda过滤带.txt文件
List<File> collect = filesList.stream()
.filter(name -> String.valueOf(name)
.endsWith(".txt"))
.collect(Collectors.toList());

System.out.println("过滤后的文件:"+collect);
collect.forEach(name-> System.out.println("过滤后的文件:"+name));

}

public static void getAllFile(File file){
//new FileFilter()过滤文件
File[] files = file.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
//过滤末尾是.docx的文件
return String.valueOf(pathname).endsWith(".docx");
}
});
System.out.println(Arrays.asList(files));
}
}
原文地址:https://www.cnblogs.com/LQ970811/p/12772365.html