IO流復制文件夾(包含子文件夾中文件)的問題
//在D盤下創建一個目錄d1,在目錄d1下創建創建若干個文本文件,并在每一個文本文件中添加若干內容。利用字節流 //將該目錄下的所有文件復制到D盤下的d2目錄下。 public?class?Test10?{ ????public?static?void?main(String[]?args)?throws?Exception?{ ????????//創建源文件夾對象 ????????File?dir?=?new?File("D:\\圖片\\新建文件夾"); ????????ArrayList<File>?list?=?new?ArrayList<>(); ????????ArrayList<File>?filesList?=?BLfile(dir,?list); ????????//創建目標文件夾對象 ????????File?dir2?=?new?File("D:\\圖片\\新建文件夾2"); ????????copyFile(list,?dir2); ????} ????private?static?void?copyFile(ArrayList<File>?list,?File?dir2)?throws?Exception?{ ????????//遍歷集合拿到每個源文件對象 ????????for?(File?f?:?list)?{ ????????????//創建讀取對象 ????????????FileInputStream?fis?=?new?FileInputStream(f); ????????????//創建文件輸入對象 ????????????FileOutputStream?fos?=?new?FileOutputStream(new?File(dir2,f.getName())); ????????????int?len?=?-1; ????????????byte[]?b?=?new?byte[1024]; ????????????while?((len?=?fis.read(b))?!=?-1)?{ ????????????????fos.write(b,?0,?len); ????????????} ????????} ????} ????//拿到每個文件夾中文件對象的方法 ????public?static?ArrayList<File>?BLfile(File?dir,?ArrayList<File>?list)?{ ????????if?(dir.isFile())?{ ????????????list.add(dir.getAbsoluteFile()); ????????????return?list; ????????} ????????File[]?f1?=?dir.listFiles(); ????????for?(File?f?:?f1)?{ ????????????if?(f.isFile())?{ ????????????????list.add(f.getAbsoluteFile()); ????????????}?else?{ ????????????????BLfile(f,?list); ????????????} ????????} ????????return?list; ????} }
請問哪里出問題了,本人自己看不出,望解答
2018-07-04