子目录路径能打印出来,但是为啥输出到文本却无法输出子目录里的路径?
我想把D:/Test里的所有文件的路径打印出来,其中D:/Test   里有a.txt;b.txt子目录123   子目录里有c.txt;d.txt,我写了以下程序   在屏幕上打印能把D:/Test下的a.txt;b.txt   和   D:/Test/123/c.txt与D:/Test/123/d.txt      但是输出到一个文本中却无法输出D:/Test/123/c.txt与D:/Test/123/d.txt      这是为什么   代码如下   解决后马上散分 
 public   class   Test4    
 { 
 	public   static   void   main(String[]   args)   throws   
IOException  	{ 
 		File   folder   =   new   File( "D:/Test "); 
 		findTxtFile(folder);  		 
 	} 
 	public   static   void   findTxtFile(File   folder)   throws   IOException 
 	{ 
 		ArrayList   list   =   new   ArrayList(); 
 		BufferedWriter   out   =   new   BufferedWriter(new   FileWriter( "c:/aa.txt ")); 
 		File   files[]   =   folder.listFiles(); 
 		if(files   ==   null   &&   files.length    <=   0) 
 		{ 
 		System.out.println( "没有文件 "); 
 		} 
 		else    
 		{ 
 			for(int   i   =   0;   i    <   files.length;   i++) 
 			{ 
 				File   file   =   files[i]; 
 				if(file.isDirectory()) 
 				{ 
 				findTxtFile(file); 
 				System.out.println(file.getName()); 
 				} 
 				else 
 				{ 
 				System.out.println(file.getPath()); 
 				out.write(file.getPath()+ "\n ");				 
 				} 
 			} 
 			out.close(); 
 		}  		 
 		} 
 }
------解决方案--------------------先看看你的代码:   
 findTxtFile()方法体的第二行是: 
 BufferedWriter out = new BufferedWriter(new FileWriter( "c:/aa.txt ")); 
 表示在方法内部生成一个BufferedWriter类型的out对象   
 在for循环里,有代码:findTxtFile(file); 
 就是说要递归调用此方法。但是要注意的是,在调用findTxtFile这个方法的时候,在新调用的方法内部又会产生一个out对象,而且指向同一个文件,这样,文件的内容会被覆盖掉,但是屏幕上输出的内容不会被覆盖,所以会产生你所说的情况。   
 代码可以修改为:   
 import java.io.BufferedWriter; 
 import java.io.File; 
 import java.io.FileWriter; 
 import 
java.io.IOException;   
 public class Test4 {   
     static BufferedWriter out;       
     public static void main(String[] args) throws IOException { 
         File folder = new File( "D:/Test "); 
         out = new BufferedWriter(new FileWriter( "d:/aa.txt ")); 
         findTxtFile(folder); 
         out.close();   
     }   
     public static void findTxtFile(File folder) throws IOException { 
         File files[] = folder.listFiles(); 
         if (files == null && files.length  <= 0) { 
             System.out.println( "没有文件 "); 
         } else { 
             for (int i = 0; i  < files.length; i++) { 
                 File file = files[i]; 
                 if (file.isDirectory()) { 
                     out.write(file.getPath() +  "\n "); 
                     findTxtFile(file); 
                     System.out.println(file.getPath()); 
                 } else { 
                     System.out.println(file.getPath()); 
                     out.write(file.getPath() +  "\n "); 
                 } 
             } 
         }   
     } 
 }