JavaSE8基础 File FilenameFilter 筛选出指定后缀名的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaSE8基础 File FilenameFilter 筛选出指定后缀名的文件相关的知识,希望对你有一定的参考价值。
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视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
以上是关于JavaSE8基础 File FilenameFilter 筛选出指定后缀名的文件的主要内容,如果未能解决你的问题,请参考以下文章
JavaSE8基础 File lastModified 获取文件夹的修改日期
JavaSE8基础 File createNewFile 在一个不存在的文件夹中创建文件时 会抛IO异常(绝对路径)
JavaSE8基础 File list 获取指定文件夹下的第一层文件和文件夹的名字
JavaSE8基础 LineNumberReader set/getLineNumber 设置与得到当前行号