Java使用File类复制全部文件及文件夹


程序思路:

  1. 创建目标目录
  2. 将文件目录下的子文件和子目录遍历
  3. 如果是子文件,通过创建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 }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM