码迷,mamicode.com
首页 > 编程语言 > 详细

Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

时间:2015-10-11 23:08:45      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:

1. 复制多级文件夹的案例

需求:复制多级文件夹
 
    数据源:E:\JavaSE\day21\code\demos
    目的地:E:\
 
分析:
        A:封装数据源File
        B:封装目的地File
        C:判断该File是文件还是文件夹
                    a:是文件夹
                            就在目的地目录下创建该文件夹
                            获取该File对象下的所有文件或者文件夹File对象
                            遍历得到每一个File对象
                            回到C
                    b:是文件
                            就复制(字节流)
 
2. 代码示例:
 1 package cn.itcast_05;
 2 import java.io.BufferedInputStream;
 3 import java.io.BufferedOutputStream;
 4 import java.io.File;
 5 import java.io.FileInputStream;
 6 import java.io.FileOutputStream;
 7 import java.io.IOException;
 8 /*
 9  * 需求:复制多极文件夹
10  * 
11  * 数据源:E:\JavaSE\day21\code\demos
12  * 目的地:E:\13  * 
14  * 分析:
15  *         A:封装数据源File
16  *         B:封装目的地File
17  *         C:判断该File是文件夹还是文件
18  *             a:是文件夹
19  *                 就在目的地目录下创建该文件夹
20  *                 获取该File对象下的所有文件或者文件夹File对象
21  *                 遍历得到每一个File对象
22  *                 回到C
23  *             b:是文件
24  *                 就复制(字节流)
25  */
26 public class CopyFoldersDemo {
27     public static void main(String[] args) throws IOException {
28         // 封装数据源File
29         File srcFile = new File("E:\\JavaSE\\day21\\code\\demos");
30         // 封装目的地File
31         File destFile = new File("E:\\");
32         // 复制文件夹的功能
33         copyFolder(srcFile, destFile);
34     }
35     private static void copyFolder(File srcFile, File destFile)
36             throws IOException {
37         // 判断该File是文件夹还是文件
38         if (srcFile.isDirectory()) {
39             // 文件夹
40             File newFolder = new File(destFile, srcFile.getName());
41             newFolder.mkdir();
42             // 获取该File对象下的所有文件或者文件夹File对象
43             File[] fileArray = srcFile.listFiles();
44             for (File file : fileArray) {
45                 copyFolder(file, newFolder);
46             }
47         } else {
48             // 文件
49             File newFile = new File(destFile, srcFile.getName());
50             copyFile(srcFile, newFile);
51         }
52     }
53     private static void copyFile(File srcFile, File newFile) throws IOException {
54         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
55                 srcFile));
56         BufferedOutputStream bos = new BufferedOutputStream(
57                 new FileOutputStream(newFile));
58         byte[] bys = new byte[1024];
59         int len = 0;
60         while ((len = bis.read(bys)) != -1) {
61             bos.write(bys, 0, len);
62         }
63         bos.close();
64         bis.close();
65     }
66 }

 

Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/4870290.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!