zoukankan      html  css  js  c++  java
  • Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例

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

    需求:复制多级文件夹
     
        数据源:E:JavaSEday21codedemos
        目的地: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:JavaSEday21codedemos
    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 }
  • 相关阅读:
    爬取校园新闻首页的新闻
    网络爬虫基础练习
    综合练习:词频统计
    免费的论文查重网站
    Hadoop综合大作业
    理解MapReduce
    熟悉常用的HBase操作
    熟悉常用的HDFS操作
    爬虫大作业
    数据结构化与保存
  • 原文地址:https://www.cnblogs.com/hebao0514/p/4870290.html
Copyright © 2011-2022 走看看