package cn.itcast.io.p3.test;
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;
/*
*
* 获取指定目录下,指定扩展名的文件(包含子目录中的)
* 这些文件的绝对路径写入到一个文本文件中。
*
* 简单说,就是建立一个指定扩展名的文件的列表。
*
* 思路:
* 1,必须进行深度遍历。
* 2,要在遍历的过程中进行过滤。将符合条件的内容都存储到容器中。
* 3,对容器中的内容进行遍历并将绝对路径写入到文件中。
*
*
*/
public class Test {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File dir = new File("e:\\java0331");
//自定义扩展名过滤器
FilenameFilter filter = new FilenameFilter(){
@Override
public boolean accept(File dir, String name) {
return name.endsWith(".java");
}
};
List<File> list = new ArrayList<File>();
getFiles(dir,filter,list);
File destFile = new File(dir,"javalist.txt");
write2File(list,destFile);
}
/**
* 对指定目录中的内容进行深度遍历,并按照指定过滤器,进行过滤,
* 将过滤后的内容存储到指定容器List中。
* @param dir
* @param filter
* @param list
*/
public static void getFiles(File dir,FilenameFilter filter,List<File> list){
File[] files = dir.listFiles();
for(File file : files){
if(file.isDirectory()){
//递归啦!
getFiles(file,filter,list);
}else{
//对遍历到的文件进行过滤器的过滤。将符合条件File对象,存储到List集合中。
if(filter.accept(dir, file.getName())){
list.add(file);
}
}
}
}
public static void write2File(List<File> list,File destFile)throws IOException{
BufferedWriter bufw = null;
try {
bufw = new BufferedWriter(new FileWriter(destFile));
for(File file : list){
bufw.write(file.getAbsolutePath());
bufw.newLine();
bufw.flush();
}
} /*catch(IOException e){
throw new RuntimeException("写入失败");
}*/finally{
if(bufw!=null)
try {
bufw.close();
} catch (IOException e) {
throw new RuntimeException("关闭失败");
}
}
}
}
分享到:
相关推荐
FilenameFilter 接口 过滤指定类型的文件,下面的程序就是过滤出D://zhang//root目录下的 .java 的文件。 - -
实现FilenameFilter接口来对文件做出过滤 2、关与给匿名类需要传入final参数问题 匿名内部类编译时,会单独生成一个class文件,该类持有外部类的引用,传入的参数都会自动复制一份。那么传入的参数 与 内部类实际...
/////////////////////2014-8-23文件筛选操作 private static void test1() { File f=new File("D:/bookandimage"); String [] name=f.list(new FilenameFilter() { public boolean accept(File ...
主要介绍了Java使用FilenameFilter查找出目录下指定后缀的文件,结合实例形式分析了java基于FilenameFilter类的文件遍历、查找相关操作技巧,需要的朋友可以参考下
服务器文件管理器servlet 配置webapp web.xml 配置器基础 FileConfigurator界面 编码FileConfigurator 登录方法:验证客户端的用户名和密码 getHomeDir方法:定义用户文件位置 getLogger方法:定义服务器异常的...
1、saz文件遍历:获取Java工程所在目录的上层目录中,指定扩展名(.saz)的文件, 2、遍历获得的上层目录,复制包含指定文件(.saz)的所有文件夹,并在创建的同名文件夹中创建同名的csv文件, 3、解析每一个saz文件,并...
-----------------------------上面只能根据文件名或者文件夹名过滤,下面的可以通过文件的其他属性过滤,例如:文件大小等----------------------------- 5.File[] listFiles(FileFilter filter) 获取...
FilenameFilter的用法 FilenameFilter是一个接口,它本身最大的作用就是在File文件夹对像的list和listFiles方法中做文件过滤使用。
主要为大家详细介绍了java文件过滤类FileFilter和FilenameFilter,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
这个是用FilenameFilter 做的过滤 .java文件,当然可以过滤其他的,比较简单的一个demo,新手适用。可以看看。不喜勿喷呀。谢谢。
python 的fnmatch 还真是省心,相比于 java 中的FilenameFilter ,真是好太多了,你完成不需要去实现什么接口。 fnmatch 配合 os.walk() 或者 os.listdir() ,你能做的事太多了,而且用起来相当 easy。 # coding: ...
java的FilenameFilter实现的文件过滤
附件中:FileEncodeDetector.java 此文件可以检测指定文件的编码格式 public static String getFileEncode(File file) {...} 附件中:FileCharsetConverter.java 此文件可以实现两个编码的相互转换 ...
FilenameFilter 实现此接口的类实例可用于过滤器文件名。 Flushable Flushable 是可刷新数据的目标地。 ObjectInput ObjectInput 扩展 DataInput 接口以包含对象的读操作。 ObjectInputValidation 允许验证图形中...
图片浏览器 (后面附有完整代码) 一、需求分析 1、首先。... } } private File[] initImageSets1(File pictureDir){ return pictureDir.listFiles(new FilenameFilter(){ public boolean accept(File dir,Strin
<br>其类有: <br>PicBrowseFrame.class 图片浏览器的主窗体 <br>ImageFilter.class 图片过滤 <br>FileNameFIlter.class 文件过滤 <br>Uitl.class 文件名后缀解析 <br>JFileChooserCre.class ...
import java.io.FilenameFilter; import java.io.IOException; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.Intent; import android.media....
class FileName implements FilenameFilter { public boolean accept(File dir,String name) { boolean boo=false; if(name.endsWith(".jpg")||name.endsWith(".JPG")) boo=true; return boo; } } public ...
这个项目被放弃了。 这是一个简单的Java库,用于构造实现Java接口FilenameFilter的正确对象,以使用正则表达式作为文件名过滤器。
代码如下: /**本类是用来选择文件夹中是.jpg类型的图片*/ private class JpgFileFilter implements FilenameFilter{ @Override public boolean accept(File dir, String filename) { // TODO Auto-generated method ...