[Java] Java查找目录下的及子目录下的指定扩展名的文件 →→→→→进入此内容的聊天室

来自 , 2019-12-05, 写在 Java, 查看 107 次.
URL http://www.code666.cn/view/115c3434
  1. package FileDemo;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.io.FilenameFilter;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9.  
  10. public class SearchSuffixIndir {
  11.  
  12.         /**
  13.          *
  14.          * 将给定目录下的及子目录下的 所有的给定后缀名的文件路径打印到一个文件中。
  15.          *
  16.          * 深度遍历该父目录,将符合条件的文件路径存到集合中。(进行过滤)。
  17.          *
  18.          * 再将集合写到文件中。
  19.          *
  20.          *
  21.          */
  22.         public static void main(String[] args) {
  23.                
  24.                 File dir = new File("F:\\JavaTest");
  25.                
  26.                 File file = new File(dir,"suffix.txt");
  27.                 //内部类
  28.                 FilenameFilter searchSuffix = new FilenameFilter(){
  29.                         @Override
  30.                         public boolean accept(File dir, String name) {
  31.                                 return name.endsWith(".java");                 
  32.                         }
  33.                 };
  34.                
  35.                 ArrayList<File> path = new ArrayList<File>();
  36.                        
  37.                 writeToArr(dir,searchSuffix,path);
  38.                 writeTofile(path,file);
  39.         }
  40.  
  41.         private static void writeTofile(ArrayList<File> al, File file) {
  42.                 BufferedWriter bw = null;
  43.                 try {
  44.                         bw = new BufferedWriter(new FileWriter(file));
  45.                        
  46.                         for(File f: al){
  47.                                 new String();
  48. //                              bw.write(String.valueOf(f.length()));
  49.                                 bw.write(f.getAbsolutePath());
  50.                                 bw.newLine();
  51.                                 bw.flush();
  52.                         }
  53.                 } catch (IOException e) {
  54.                         throw new RuntimeException("写入失败!");
  55.                 }finally{
  56.                         if(bw != null)
  57.                                 try {
  58.                                         bw.close();
  59.                                 } catch (IOException e) {
  60.                                         throw new RuntimeException("关闭失败!");
  61.                                 }
  62.                 }
  63.                
  64.         }
  65.  
  66.         public static void writeToArr(File dir, FilenameFilter searchSuffix, ArrayList<File> al) {
  67.                
  68.                 File []files = dir.listFiles();
  69.                 for(File f : files){
  70.                         if(f.isDirectory()){
  71.                                 //递归了。
  72.                                 writeToArr(f, searchSuffix, al);               
  73.                         }else{
  74.                                 if(searchSuffix.accept(dir, f.getName())){
  75.                                         al.add(f);
  76.                                 }
  77.                         }
  78.                 }
  79.         }
  80.        
  81.        
  82.        
  83.  
  84. }
  85.  
  86. //java/5970

回复 "Java查找目录下的及子目录下的指定扩展名的文件"

这儿你可以回复上面这条便签

captcha