代码如下:import java.io.*;
public class FileFilterDemo
{
public static void main(String args[]){
//创建文件对象
File dir = new File("C:/Classes/");
//创建文件类型过滤器
Filter filter = new Filter("java");
//取得文件名字符串数组
String fileList[] = dir.list(filter);
int I;
for (I=0;I<fileList.length;I++){
//获取文件对象
String dir2="C:/Classes/"+fileList[I];
File tmpFile = new File(dir2);
//取得文件属性
if(tmpFile.isFile()){
System.out.println("文件"+tmpFile);
}
else{
System.out.println("目录"+tmpFile);
}
}
}
}
//定义文件过滤器
class Filter implements FilenameFilter
{
//扩展名
String extension;
//构造方法
Filter(String extension)
{
this.extension = extension;
}
//测试文件的扩展名是否为extension
public boolean accept(File directory,String filename)
{
return filename.endsWith("."+extension);
}
}为什么程序根本没有调用 Filter的accept()方法,就应用到accept()呢? 而accept()中的参数 File directory,String filename 在方法里面根本没有用到,为什么呢?
public class FileFilterDemo
{
public static void main(String args[]){
//创建文件对象
File dir = new File("C:/Classes/");
//创建文件类型过滤器
Filter filter = new Filter("java");
//取得文件名字符串数组
String fileList[] = dir.list(filter);
int I;
for (I=0;I<fileList.length;I++){
//获取文件对象
String dir2="C:/Classes/"+fileList[I];
File tmpFile = new File(dir2);
//取得文件属性
if(tmpFile.isFile()){
System.out.println("文件"+tmpFile);
}
else{
System.out.println("目录"+tmpFile);
}
}
}
}
//定义文件过滤器
class Filter implements FilenameFilter
{
//扩展名
String extension;
//构造方法
Filter(String extension)
{
this.extension = extension;
}
//测试文件的扩展名是否为extension
public boolean accept(File directory,String filename)
{
return filename.endsWith("."+extension);
}
}为什么程序根本没有调用 Filter的accept()方法,就应用到accept()呢? 而accept()中的参数 File directory,String filename 在方法里面根本没有用到,为什么呢?
解决方案 »
- JAVA GUI 中一个界面跳转到另一个界面的问题
- 线程睡眠唤醒问题,一直不明白,请给解释一下.程序来自:Java 案例大全
- 新手第一个程序就运行错误
- 工具类是不是一般都做成静态的啊?
- 如何让JFrame的大小自动变化
- 谁有树的展开和收起图标?
- c++ java 运算符
- ResultSetMetaData.getTableName在只读的Statement中返回为空???
- 初学者关于J2SDK1.4.2_04的安装
- 判断字符数组是否为空?
- 请问高手,我在java applet中有 密钥 ,如何不给客户端用反编译或其他方法知道我的密钥??
- pdf格式文件,复制内容时,英文部分可以正常复制,中文部分却不可以,谁能解决一下
String fileList[] = dir.list(filter); 以下是File.list(FilenameFilter filter)的源码。public String[] list(FilenameFilter filter) {
String names[] = list();
if ((names == null) || (filter == null)) {
return names;
}
ArrayList v = new ArrayList();
for (int i = 0 ; i < names.length ; i++) {
//下面这句就是调用
if (filter.accept(this, names[i])) {
v.add(names[i]);
}
}
return (String[])(v.toArray(new String[0]));