文件的输入/输出问题
我在D:\dong1下有三个文件a.htm   b.htm   c.htm,现在执行下列程序 
 import   java.io.*; 
 public   class   FileFilterTest{ 
 	public   static   void   main(String   args[]){ 
 		File   dir=new   File( "\\dong1 "); 
 		Filter   filter=new   Filter( "htm "); 
 		System.out.println( "list   html   files   in   directory    "+dir); 
 		String[]   files=dir.list(filter); 
 		for(int   i=0;i <files.length;i++){ 
 			File   f=new   File(files[i]); 
 			if(f.isFile()) 
 				System.out.println( "file    "+f); 
 			else 
 				System.out.println( "sub   directory    "+f); 
 		} 
 	} 
 } 
 class   Filter   implements   FilenameFilter{ 
 	String   extent; 
 	Filter(String   extent){ 
 		this.extent=extent; 
 	} 
 	public   boolean   accept(File   dir,String   name){ 
 		return   name.endsWith( ". "+extent); 
 	} 
 } 
 为什么得到的结果是 
 list   html   files   in   directory   \dong1 
 sub   directory   a.htm 
 sub   directory   b.htm 
 sub   directory   c.htm 
 而不是 
 list   html   files   in   directory   \dong1 
 file   a.htm 
 file   b.htm 
 file   c.ht
------解决方案--------------------估计问题出在 File f=new File(files[i]); 这一句上   
 用listFiles(FilenameFilter filter)方法返回一个File数组就不会有这样的问题了
------解决方案--------------------这样就可以了  
 list方法是列出指定目录下的所有文件的文件名! 而不是完整的路径 
 File f=new File(files[i]); 
 所以这句声明File类实例的句子就出错了 它会在当前工程的目录下来找files[i]指定的文件! 
 因为文件不存在!所以isFile() 返回的是false 
 所以就出现了你上面的结果 
 不知道我这样说对不对哈。。 说错了莫怪。。。   
 import java.io.*; 
 public class FileFilterTest{ 
         public static void main(String args[]){ 
                 File dir=new File( "d:\\dong1 "); 
                 Filter filter=new Filter( "htm "); 
                 System.out.println( "list html files in directory  "+dir);                   
                 File[] files=dir.listFiles(filter);                   
                 for(int i=0;i <files.length;i++){ 
                         File f=files[i]; 
                         if(f.isFile()) 
                                 System.out.println( "file  "+f.getName()); 
                         else 
                                 System.out.println( "sub directory  "+f); 
                 } 
         } 
 } 
 class Filter implements FilenameFilter{ 
         String extent; 
         Filter(String extent){ 
                 this.extent=extent; 
         } 
         public boolean accept(File dir,String name){ 
                 return name.endsWith( ". "+extent); 
         } 
 } 
------解决方案--------------------File f = new File( "d:\\dong1\\ "+files[i]);
------解决方案--------------------import java.io.*; 
 public class FileFilterTest{ 
 	public static void main(String args[]){ 
 		File dir=new File( "D:/dong1 "); 
 		Filter filter=new Filter( "htm "); 
 		System.out.println( "list html files in directory  "+dir); 
 		String[] files=dir.list(filter); 
 		for(int i=0;i <files.length;i++){ 
 			File f=new File( "D:/dong1/ " + files[i]); 
 			if(f.isFile()) 
 				System.out.println( "file  "+f);