os :windows7 x64
jdk:jdk-8u131-windows-x64
ide:Eclipse Oxygen Release (4.7.0)
code:
package jizuiku0; import java.io.File; import java.io.FilenameFilter; /* * @version V17.09 */ public class Filter { public static void main(String[] args) { // 找到E:\迅雷下载\下载合集中文件名以.xlsx结尾的文件 String pathname = "E:\\迅雷下载\\下载合集"; File file = new File(pathname); // 因为这里只筛选文件的名字,所以使用FilenameFilter接口 // 使用匿名类 // filesName中都是符合条件的文件的名字 String[] filesName = file.list(new FilenameFilter() { // 这个函数是用来判断的 @Override public boolean accept(File dir, String name) { // TODO Auto-generated method stub // dir -> E:\迅雷下载\下载合集 // name -> dir下 文件夹和文件的名字 System.out.println(dir + "---" + name); // 是文件 并且 文件名以.xlsx结尾 return new File(dir, name).isFile() && name.endsWith(".xlsx"); } });// 这里的分号容易被忘记 System.out.println("\n以.xlsx结尾的文件:"); // 遍历 for (String name : filesName) { System.out.println(name); } } }
result:
sourceCode:
public String[] list(FilenameFilter filter) { String names[] = list(); if ((names == null) || (filter == null)) { return names; } List<String> v = new ArrayList<>(); for (int i = 0 ; i < names.length ; i++) { if (filter.accept(this, names[i])) { v.add(names[i]); } } return v.toArray(new String[v.size()]); }
通过查看源代码,可以更好了解指定函数的运行原理。
Java优秀,值得学习。
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
时间: 2025-01-02 17:39:05