IO流-FilenameFilter接口--文件过滤器的使用---筛选特定文件
来源:互联网 发布:超市商品条形码数据库 编辑:程序博客网 时间:2024/05/09 11:18
FilenameFilter接口:
实现此接口的类实例可用于过滤器文件名
此接口中一个唯一的方法:实现他的类必须实现此方法来定义过滤规则
boolean
accept(File dir,String name)
测试指定文件是否应该包含在某一文件列表中。
boolean accept(File dir, String name)
- 测试指定文件是否应该包含在某一文件列表中。
- 参数:
dir
- 被找到的文件所在的目录。name
- 文件的名称。- 返回:
- 当且仅当该名称应该包含在文件列表中时返回
true
;否则返回false
。
package cn.itheima.cway.IO;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.FilenameFilter;import java.io.IOException;import java.util.ArrayList;import java.util.List;public class Test {/** * 需求:将指定目录下的所有.java文件的绝对路径输出到一个文本文件中 * 思路: * 1、必须进行深度遍历 * 2、必须有过滤器,在遍历的过程中进行遍历,将符合条件的内容存入容器中 * 3、对容器中内容进行遍历,并将绝对路径存入到文件中 * @param args * @throws IOException */public static void main(String[] args) throws IOException {//创建一个需要遍历的目录File dir=new File("F:\\java");//创建一个文件名过滤器的匿名内部类,用于过滤.class文件FilenameFilter filter=new FilenameFilter(){ public boolean accept(File dir, String name) { return name.endsWith(".java");}};//创建一个list集合,用于临时存放目录下所有.class文件List<File> list=new ArrayList<File>();//调用getFiles方法,方法的作用:遍历指定目录dir下面满足filter过滤器规则的文件,并存入到list集合中getFiles(dir,filter,list);//创建一个目的文件,用于存放满足过滤器条件的文件的绝对路径File dec=new File("f:\\s\\1.txt");//如果文件不存在,则创建if(!dec.exists())dec.createNewFile();//调用write2File方法,方法的作用是:将list集合中的内容写入到目标文件中write2File(list,dec); }/** * 对指定目录中的内容进行深度遍历,并按照指定的过滤器进行过滤 * 将过滤后的内容存入到指定容器List中 * @param dir * @param filter * @param list */private static void getFiles(File dir,FilenameFilter filter,List list) {//获取到指定目录dir下面所有的文件列表File[] files=dir.listFiles();//用for增强循环遍历filesfor(File file:files){//判断是否是目录,如果是目录则递归调用该方法:getFiles()if(file.isDirectory()){getFiles(file,filter,list); }else{//如果不是目录且满足过滤器条件的话则将文件对象存入到list集合中 if(filter.accept(dir, file.getName())) list.add(file);}} }/** * 将list集合中的内容的决定路径写入到文件 * @param list * @param desFile * @throws IOException */private static void write2File(List<File> list,File desFile) throws IOException { BufferedWriter bw=null;try {//创建一个文件字符输出流bw=new BufferedWriter(new FileWriter(desFile));//遍历list集合(File类型)for(File file:list){//将文件的决定路径写入文件desFile中bw.write(file.getAbsolutePath());//写入一个换行符bw.newLine();//刷新缓存,保证内容被写入文件bw.flush();}} finally{if(bw!=null){try {bw.close();} catch (IOException e) { throw new RuntimeException("关闭失败");}}}}}
0 0
- IO流-FilenameFilter接口--文件过滤器的使用---筛选特定文件
- FilenameFilter 文件过滤器的用法
- java--FilenameFilter文件过滤器
- java--FilenameFilter文件过滤器
- 文件过滤器 FilenameFilter
- Java--FilenameFilter文件过滤器
- java--FilenameFilter文件过滤器
- filenamefilter 过滤器的使用
- IO:文件过滤器的使用
- FilenameFilter接口修饰的文件过滤实例
- File的用法二:文件过滤器之FileNameFilter的用法
- Java.io.FilenameFilter文件名过滤接口的使用。
- [疯狂Java]I/O:File(文件类,也是文件流的节点)、FilenameFilter(文件过滤器)
- Command设计模式-文件过滤器FilenameFilter
- FilenameFilter 文件过滤器--指定目录过滤后缀名
- Java使用FilenameFilter过滤文件
- java 提供的文件过滤类FilenameFilter使用
- 使用FilenameFilter来找出目录下指定后缀的文件
- 多个硬盘间克隆操作系统
- JAVA笔记【20131210】
- JSON格式
- 【数据结构】关于停车场的管理
- Linux 技巧:让进程在后台可靠运行的几种方法
- IO流-FilenameFilter接口--文件过滤器的使用---筛选特定文件
- 企业转型- 新的品牌愿景
- @Pointcut的用法
- ajax--笔记
- 抽象类和接口小结
- EJB学习二 我的第一个EJB项目(Eclipse下的EJB开发,与JBoss集成,Ant打包)
- strstr函数的用法
- Android中C/C++打印堆栈的方法
- LiveCode:让每个人都能开发APP的开发平台