程序思路:
- 创建目标目录
- 将文件目录下的子文件和子目录遍历
- 如果是子文件,通过创建IO流直接复制,如果是子目录,遍历子目录使用递归方法复制
使用方法:
- boolean mkdir()//创建文件夹
- File[] listFiles()//返回指定文件目录下的一级子文件和子目录的文件类数组
- boolean isFile()//判断是否含子文件
- boolean isDirectory()//判断是否含子目录
- String getName()//返回文件名字符串
- String getPath()//返回文件路径
1 public class ioFile { 2 public static void main(String[] args) { 3 File file1 = new File("D:/exercise"); 4 File file2 = new File("C:/"+file1.getName()); 5 file2.mkdir(); 6 fileCopy(file1,file2); 7 } 8 public static void fileCopy(File file1,File file2){ 9 File[] files1 = file1.listFiles(); 10 for (int i = 0; i < files1.length; i++) { 11 if (files1[i].isDirectory()){ 12 String s = files1[i].getName(); 13 File file = new File(file2.getPath()+"/"+s); 14 file.mkdir(); 15 fileCopy(files1[i],file); 16 }else if (files1[i].isFile()){ 17 String s = files1[i].getName(); 18 BufferedReader br = null; 19 BufferedWriter bw = null; 20 try { 21 br = new BufferedReader(new InputStreamReader(new FileInputStream(files1[i].getPath()+""))); 22 bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file2.getPath()+"/"+s))); 23 String t; 24 while(true){ 25 if ((t=br.readLine())!=null){ 26 bw.write(t); 27 }else{ 28 break; 29 } 30 } 31 32 } catch (Exception e) { 33 e.printStackTrace(); 34 } finally { 35 if (br!=null){ 36 try { 37 br.close(); 38 } catch (IOException e) { 39 e.printStackTrace(); 40 } 41 }if (bw!=null){ 42 try { 43 bw.close(); 44 } catch (IOException e) { 45 e.printStackTrace(); 46 } 47 } 48 } 49 } 50 } 51 } 52 }
