【简述】

在File类的list方法中可以接收一个FilenameFilter参数,通过该参数可以列出只满足要求的文件。

FilenameFilter接口里包含了一个accept(File dir, String name)方法,该方法会依次对指定的File的所有子目录或者文件进行迭代,如果该方法返回true,则list()方法会列出该子目录或文件。

File类中的使用过滤器的list方法

FilenameFilter接口内的accept(File dir,String name)方法

【案例】

package com.Higgin.part1;

import java.io.File;
import java.io.FilenameFilter; /**
* FilenameFilter接口的实现类
* 在accept方法内添加文件名的过滤器条件
*/
class FilterName implements FilenameFilter{
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".txt");
}
}
/**
* 文件名过滤
*/
public class FilenameFilterDemo {
public static void main(String[] args) {
File file=new File("c://testJavaIO");
System.out.println("===============使用lambda表达式获取后缀为.java的文件=================");
//使用lambda表达式,获得后缀是.java的文件
String[] nameList=file.list((div,name)->name.endsWith(".java")); //极大简化了代码
for(String fileName:nameList){
System.out.println(fileName);
} System.out.println("===============使用lambda表达式获取后缀为.txt的文件=================");
//不使用lambda表达式获取后缀为.txt的文件
String[] nameList2=file.list(new FilterName()); //直接使用FileNameFilter的实现类FilterName
for(String fileName:nameList2){
System.out.println(fileName);
}
}
}

【对应的文件夹内的内容】

【运行结果】

【小结】

上面的两个方法都实现了accept()方法,实现accept()方法起始就是实现自己的过滤规则,指定那些文件应该由list方法来列出。

FilenameFilter接口内只有一个抽象方法,因此该方法是一个函数式接口,可以使用lambda表达式创建实现该接口。

IO流02_文件过滤器的更多相关文章

  1. Java基础 IO流的文件和目录的五类主要操作

    笔记: /** IO流的 文件和目录的操作 * 1.路径需要 需要两个反斜杠 或者一个单斜杠! * 绝对路径:包括盘符在内的完整的路径名! * 相对路径:在当前目录文件下的路径! * 2.File 是 ...

  2. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  3. java io流 对文件夹的操作

    java io流 对文件夹的操作 检查文件夹是否存在 显示文件夹下面的文件 ....更多方法参考 http://www.cnblogs.com/phpyangbo/p/5965781.html ,与文 ...

  4. java io流 创建文件、写入数据、设置输出位置

    java io流 创建文件 写入数据 改变system.out.print的输出位置 //创建文件 //写入数据 //改变system.out.print的输出位置 import java.io.*; ...

  5. IO流----操作文件的9种方法代码实现

    IO流----操作文件的9种方法代码实现: 1:使用字节流读写数据: 四种方式: method1:          每次读写一个字节,边读边写: /* * 复制文本文件. * * 数据源:从哪里来 ...

  6. 38、使用IO流进行文件拷贝

    使用IO流进行文件拷贝 需求:在项目的根目录里面创建一个java.txt的文件,然后将这个文件拷贝到file文件夹里面并且重命名为good.txt文件先以流的方式将java.txt文件读取到内存中,然 ...

  7. Java基础教程:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  8. java 后台通过IO流把文件传到前端并下载

    我的业务需求是两个不同的web程序放在不同的服务器上,web程序A要访问到web程序B上传上来的文件,所以用到了这一个IO读取文件的接口 JAVA代码(排版有点问题  已经尽力补救了(:3_ヽ)_) ...

  9. IO流的文件输入输出效率问题

    IO流的文件输入输出效率问题 第一种方法 我用使用一个数组,把FIleInputStream获取到的二进制数存入这个数组,然后使用FIleOutputStream进行输出 缺点:速度慢 优点:不消耗内 ...

随机推荐

  1. Servlet过滤器理解

    from:http://blog.csdn.net/microtong/article/details/5007170 过滤器(Filter)的概念 过滤器位于客户端和web应用程序之间,用于检查和修 ...

  2. 补丁安装命令(WUSA)

    wusa windows6.1-kb2716513-x64.msu /quiet /norestart msxml4-kb2758694-enu.exe /quiet /norestart 安装.ms ...

  3. 从零开始学android-一行两个按钮居中 布局

    方法一: <RelativeLayout android:id="@+id/relativeTop" android:layout_width="fill_pare ...

  4. ThinkPHP3.1快速入门(12)自动验证

    自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证. 验证规则 数据验证可以进行数据类型.业务规则.安全判断等方面的验证操作.数据验证有两 ...

  5. BZOJ 1934: [Shoi2007]Vote 善意的投票 最小割

    1934: [Shoi2007]Vote 善意的投票 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnl ...

  6. Android 如何更换屏幕上锁界面背景图片

    前言          欢迎大家我分享和推荐好用的代码段~~ 声明          欢迎转载,但请保留文章原始出处:          CSDN:http://www.csdn.net        ...

  7. Android多媒体-人脸识别

    1. 相关背景 Google 于2006年8月收购Neven Vision 公司 (该公司拥有 10 多项应用于移动设备领域的图像识别的专利),以此获得了图像识别的技术,并不是常快应用到免费的 Pic ...

  8. java nio 抛出NonWritableChannelException异常

    抛出异常的代码在此处: MappedByteBuffer buffer = channel.map(MapMode.READ_WRITE, 0, avalible); 其中channel是一个file ...

  9. [React Fundamentals] Composable Components

    To make more composable React components, you can define common APIs for similar component types. im ...

  10. [React Fundamentals] Using Refs to Access Components

    When you are using React components you need to be able to access specific references to individual ...