我所知道的过滤文件的2种方式

第一种:
import java.io.*;

public class FileFilterTest {

public static void main(String args[]) {
File dir = new File("d:\\file"); // 用File 对象表示一个目录
Filter filter =new Filter("java");
System.out.println("list java files in directory "+dir);
String files[]=dir.list(filter); //列出目录dir下,文件后缀名为java的所有文件
for(int i=0;i<files.length;i++){
File f=new File(dir,files[i]); //为目录dir 下的文件或目录创建一个File 对象
if(f.isFile()) //如果该对象为后缀为java的文件, 则打印文件名
System.out.println("file "+f);
else
System.out.println("sub directory "+f ); //如果是目录则打印目录名

}
}
}

class Filter implements FilenameFilter {
String extent;

public Filter(String extent) {
this.extent = extent;
}

public boolean accept(File dir, String name) {
return name.endsWith("."+extent); //返回文件的后缀名;
}

}


第二种:
import java.io.File;
import java.io.FileFilter;

public class FileFilterTest2 {
public static void main(String args[]){
String pathName = ".";
if(args!=null && args.length>0){
pathName = args[0];
}
File file = new File(pathName);
if(file.isFile()){
System.out.println("参数错误!");
return;
}
filter(file);
}

/**
* 文件过滤
* @param file
*/
public static void filter(File file){
File fs[] = file.listFiles(new FileFilter(){
public boolean accept(File f){
if(f.isFile()){
String name = f.getName();
if(name.endsWith(".txt")){
return true;
}
}
if(f.isDirectory()){
return true;
}
return false;
}
});
System.out.println("ok--"+fs.length);
if(fs!=null && fs.length>0){
for(File f:fs){
if(f.isFile()){
System.out.println(f.getAbsolutePath());
}else{
System.out.println("else--"+f.getAbsolutePath());
filter(f);
}
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值