Java I/O---擷取檔案目錄並寫入到文本

來源:互聯網
上載者:User

標籤:under   catch   string   rect   nal   span   super   iter   add   

        首先擷取指定目錄下的所有檔案目錄,存入List集合中,然後建立文字檔將List遍曆寫入文本中儲存。

1.主程式類
  1 public class Test {  2   3 /**  4  * @param args  5  */  6 public static void main(String[] args) {  7 // TODO Auto-generated method stub  8 //擷取IO目錄下的所有java檔案  9 File dir = new File("H:\\workspace\\IO"); 10  11 List<File> list = fileList(dir,".java");//路徑列表,傳入過濾器 12  13 //擷取路徑下的合格檔案後,寫入一個txt中 14 File destFile = new File("H:\\workspace\\Testfile\\javaList.txt"); 15 
 16             write2File(list,destFile); 17 }
 2.過濾檔案的方法,傳入指定 路徑參數 和檔案 尾碼參數, 返迴文件List集合
  1   2     /**  3  * 定義擷取指定過濾器條件的集合  4  * @param dir 路徑  5  * @param string 尾碼.java  6  * @return  7  */  8 public static List<File> fileList(File dir, String suffix){  9 //1.定義集合 10 List<File> list = new ArrayList<File>(); 11  12 //2.過濾器 13 FileFilter filter = new  FileFilterBySuffix(suffix); 14 getFileList(dir, list, filter); 15  16 return list; 17  18 }
3.過濾器方法和過濾器類
  1 /**  2  * 定義一個擷取指定過濾器條件的集合  3  * 多級目錄下,傳遞list  4  * @param dir 路徑  5  * @param list 檔案集合  6  * @param filter 過濾器  7  */  8 public static void getFileList(File dir, List<File> list, FileFilter filter){  9 File[] files = dir.listFiles(); 10  11 for(File file : files){ 12 if(file.isDirectory()){ 13 getFileList(file, list, filter);//遞迴 14 }else{ 15 //過濾檔案 16 if(filter.accept(file)){ 17 list.add(file);//添加 18 } 19 } 20 } 21 } 22 } 23 
  1 public class FileFilterBySuffix implements FileFilter {  2   3 private String suffix;  4   5 public FileFilterBySuffix(String suffix) {  6 super();  7 this.suffix = suffix;  8 }  9  10 @Override 11 public boolean accept(File pathname) { 12 // TODO Auto-generated method stub 13 return pathname.getName().endsWith(suffix); 14 } 15  16 }
4.寫入list到檔案方法
  1 /**  2  * 將list寫入txt中  3  * @param list 檔案清單  4  * @param destFile 儲存物件java檔案清單  5  */  6 private static void write2File(List<File> list, File destFile) {  7 // TODO Auto-generated method stub  8 BufferedWriter bufw = null;  9  10 try { 11 //使用字元緩衝區對象BufferedWriter 12 bufw = new BufferedWriter(new FileWriter(destFile)); 13  14 //遍曆list,寫入絕對路徑 15 for(File file : list){ 16 bufw.write(file.getAbsolutePath());//寫入絕對路徑 17 bufw.newLine();//換行 18 bufw.flush();  //重新整理紀錄 19 } 20  21 } catch (Exception e) { 22 // TODO: handle exception 23 } finally{ 24 if(bufw != null){ 25 try { 26 bufw.close(); 27 } catch (IOException e) { 28 // TODO Auto-generated catch block 29 throw new RuntimeException(); 30 } 31 } 32 } 33 }

Java I/O---擷取檔案目錄並寫入到文本

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.