FileFilter与FilenameFilter可以实现对文件的过滤,他们都是接口,具体的过滤规则需要我们自己编写

1、FileFilter

 package org.zln.io.file;

 import java.io.File;
import java.io.FileFilter; /**
* 拓展名过滤器 只返回指定拓展名的文件
* Created by coolkid on 2015/6/21 0021.
*/
public class ExtensionFilter implements FileFilter{ //拓展名
private String extension; public ExtensionFilter(String extension) {
this.extension = extension;
} @Override
public boolean accept(File file) {
boolean result = false; if (file.isDirectory()){//目录 过滤掉
result = false;
}else {
String fileName = file.getName();//文件名 不是全路径
int index = fileName.lastIndexOf(".");
if (index == -1){
result = false;
}else if (index == fileName.length()-1){
result = false;
}else {
if (this.extension.equalsIgnoreCase(fileName.substring(index+1))){
result = true;
}
}
}
return result;
}
}

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\io\file\ExtensionFilter.java

测试代码

         File file = new File("E:\\GitHub\\tools");
File[] files = file.listFiles(new ExtensionFilter("bat"));
for (File file1:files){
System.out.println(file1.getAbsolutePath());
}

只有拓展名为 bat的文件才会被过滤出来,其他扩展名的文件以及文件夹不会被listFiles出来

在此时的逻辑上,我们是根据拓展名来过滤的,当然,如果实际需要,我们也可以根据文件的其他属性进行过滤


2、FilenameFilter

 package org.zln.io.file;

 import java.io.File;
import java.io.FilenameFilter; /**
* 图片过滤器
* Created by coolkid on 2015/6/21 0021.
*/
public class ImageFilter implements FilenameFilter { public boolean isGif(String filename){
if (filename.toLowerCase().endsWith(".gif")){
return true;
}else {
return false;
}
} public boolean isJpg(String filename){
if (filename.toLowerCase().endsWith(".jpg")){
return true;
}else {
return false;
}
} public boolean isPng(String filename){
if (filename.toLowerCase().endsWith(".png")){
return true;
}else {
return false;
}
} @Override
public boolean accept(File dir, String name) {
System.out.println("DIR:"+dir.getAbsolutePath());
return isGif(name)||isJpg(name)||isPng(name);
}
}

E:\GitHub\tools\JavaEEDevelop\Lesson1_JavaSe_Demo1\src\org\zln\io\file\ImageFilter.java

通常使用 FilenameFilter 对文件进行过滤

Java IO 之 FileFilter与FilenameFilter的更多相关文章

  1. java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)

    java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...

  2. 图解 Java IO : 二、FilenameFilter源码

    Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter   ...

  3. java SE :文件基本处理 File、FileFilter、FileNameFilter

    File    对目录及文件的创建.重命名.删除.文件列表.判断是否存在 构造函数 // 完整的目录或文件路径 public File(String pathname) //父级目录/文件路径+子级目 ...

  4. java 文件过滤器 java.io.FilenameFilter

    File 类里有方法: String[] list(FilenameFilter filter)    返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中满足指定过滤器的文件和目录. File ...

  5. Java IO之字符流和文件

    前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字 ...

  6. java io流 对文件操作

    检查文件是否存在 获取文件路径 获取文件大小 ...... 更多参考手册 //对文件的操作 //检查文件是否存在 //获取文件路径 //获取文件大小 //文件是否可读 //文件是否可写 //.... ...

  7. FileFilter与FilenameFilter实例

    下面的例子中我们创建了一个FileFilter类,此类根据文件名的扩展名是否为.txt来筛选文件.创建FileFilter实例之后需要将此实例作为参数传给File的listFiles(fileFilt ...

  8. java.io.File类操作

    一.java.io.File类 String path="E:/222/aaa";//路径 String path1="aaa.txt"; File file= ...

  9. java IO(一):File类

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

随机推荐

  1. Win10 VirtualBox虚拟机搭建lnmp环境

    之前用的是vagrant+VirtualBox搭建的环境,因为是windows系统动不动就报错,打不开环境,所以还是老老实实换了虚拟机哎.... 版本: VirtualBox 5.1.34   xsh ...

  2. 添加fileinfo扩展

    首先声明:笔者用的是军哥的lnmp一键安装包!链接地址:https://lnmp.org 打开upgrade_php.sh配置文件[文件所在位置:~/lnmp1.4/include/upgrade_p ...

  3. laravel路由组+中间件

    在rotues中的web.php

  4. PHP一些常用魔术方法

    魔术方法                          调用方法                                     作用__set                   有两个 ...

  5. Phpstudy2018 集成环境配置虚拟域名访问到Index Of 下

    (1)    Phpstudy是一款php集成开发环境 可随意切换Php的版本以及服务器. Phpstudy的网站根目录默认为WWW目录,那么如果我们想通过虚拟域名访问到Index Of目录来便于查看 ...

  6. print(__file__)返回<encoding error>的问题

    今天写了一下代码,本来是想得到当前文件的上面三层的目录的,结果返回的却是错误 import os import sys print(__file__) # 得到上上层目录的路径之后,加入到默认的环境变 ...

  7. python函数(2017-8-2)

    1. def 函数名(形式参数) 函数体 return "123" 函数执行了return之后就不再执行下面的代码 2. 默认形参实参的位置一一对应 如果要调整位置,指定形参名字 ...

  8. 一些matlab教程资源收藏,使用matlab编程的人还是挺多的

    Matlab教程专题资源免费下载整理合集收藏 <MATLAB从入门到精通>高清文字版[PDF] 103.9MB 简体中文 <矩阵实验室>(Mathworks.Matlab.R2 ...

  9. Spring BindingResult验证框架Validation特殊用法

    使用注解@Valid(实体属性校验) Springboot实现 Spring实现 一.准备校验时使用的JAR validation-api-1.0.0.GA.jar:JDK的接口: hibernate ...

  10. Python3爬虫(三)请求库的使用之urllib

    Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.urllib库: 1. 是Python内置的HTTP请求库 2. 在Python2中,由urllib和urll ...