本帖最后由 乘鱼飞 于 2013-4-21 19:57 编辑
这两个文件过滤器非常相似,都是接口,就是里面的参数不同,
FilenameFilter是文件名过滤器,FileFilter是文件过滤器。
个人感觉FilenameFilter文件名过滤器,查找文件更精确
代码举例:
(1)//测试File[] listFiles(FileFilter filter)
import java.io.*;
public class TestFilter {
public static void main(String[] args) {
File f=new File("E:/");
File[] files=f.listFiles(new FileFilter()
{
@Override
public boolean accept(File pathname) {
try {
if(pathname.getCanonicalPath().endsWith(".txt"))
{
return true;
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
}) ; //匿名内部类
for(File file :files)
{
System.out.println(file);
}
}
}
/*输出结果:
E:\cccutil.txt
E:\codepage.txt
E:\license-kr.txt
E:\license.txt
E:\readme.txt
*/
(2)//测试File[] listFiles(FilenameFilter filter)
public class TestFilter {
public static void main(String[] args) {
File f=new File("E:/");
File[] files=f.listFiles(new FileFilter()
{
@Override
public boolean accept(File pathname) {
try {
if(pathname.getCanonicalPath().endsWith("xml.stx"))
{
return true;
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
});
for(File file :files)
{
System.out.println(file);
}
}
}
/*输出结果:
E:\xml.stx
*/
|