代码如下: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 在方法里面根本没有用到,为什么呢?
解决方案 »
- 【求助】如何用GridBagLayout实现这种布局?
- java swing中如何点击一行文本框获取其内容并做出相应的单击事件!急啊!
- struts2的action中怎么调用hibernate自动生成的dao?
- 有没有JAVA 与ASP 通用的base64加密解密
- 单选框触发事件,使得其下面的文本框的内容发生变化,如何实现?
- 迭带器的问题请进。。。。
- 有个关于validator验证的问题不明白,请解释!!分不够就加!!
- 还是build.xml问题,怎么把jar文件包含到编译环境里去
- 小弟初学java,望各位大虾帮我解决一下基础问题。
- 一个关于鼠标事件的简单问题,好急!!!!
- 请问高手,我在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]));