• 平时作业五 Java


    使用I/O流和文件对象实现目录备份功能。用户指定源目录、目标目录以及备份文件类型(如果是任意文件使用通配符*号),通过此程序可将源目录及其所有子目录下的指定类型文件保存到目标目录。

     1 package com.tiger.practice;
     2 import java.io.File;
     3 import java.io.FileInputStream;
     4 import java.io.FileOutputStream;
     5 import java.io.IOException;
     6 public class Homework5 {
     7     
     8         public static void main(String[] args) throws IOException
     9         {
    10             copyDir("D:\10 cd onedrive\OneDrive - mail.cdu.edu.cn\2 大学文档\02 secondary docu\01 学科文档\15 Java", "D:\吴芝冰\Desktop");
    11         }
    12         /**
    13          * 使用递归复制目录,
    14          * 
    15          * @param FromDir
    16          *            源目录的路径名称
    17          * @param ToDir
    18          *            目的目录的路径名称
    19          * @throws IOException
    20          */
    21         public static void copyDir(String FromDir, String ToDir) throws IOException
    22         {
    23             // 创建目录的File对象
    24             File srcDir = new File(FromDir);
    25             // 判断源目录是不是一个目录
    26             if (!srcDir.isDirectory())
    27             {
    28                 // 如果不是目录那就不复制
    29                 return;
    30             }
    31             // 创建目的目录的File对象
    32             File destDir = new File(ToDir);
    33             // 如果目的目录不存在
    34             if (!destDir.exists())
    35             {
    36                 // 创建目的目录
    37                 destDir.mkdir();
    38             }
    39 
    40             // 获取源目录下的File对象列表,每一个对象代表一个目录或者文件
    41             File[] srcDirList = srcDir.listFiles();
    42             // 遍历源目录File对象列表
    43             for (int i = 0; i < srcDirList.length; i++)
    44             {
    45                 // 如果是目录的话
    46                 if (srcDirList[i].isDirectory())
    47                     
    48                 {
    49                     // 递归调用复制该目录
    50                     copyDir(FromDir + File.separator + srcDirList[i].getName(),
    51                             ToDir + File.separator + srcDirList[i].getName());
    52                 }
    53                 // 如果是文件的话
    54                 if (srcDirList[i].isFile())
    55                 {
    56                     // 调用复制文件的方法
    57                     copyFile(FromDir + File.separator + srcDirList[i].getName(),
    58                             ToDir + File.separator + srcDirList[i].getName());
    59                 }
    60 
    61             }
    62         }
    63         /**
    64          * 复制一个文件
    65          * 
    66          * @param srcFile
    67          *            源文件
    68          * @param destFile
    69          *            目的文件
    70          * @throws IOException
    71          */
    72         public static void copyFile(String srcFile, String destFile)
    73                 throws IOException
    74         {
    75             FileInputStream in = new FileInputStream(srcFile);
    76             FileOutputStream out = new FileOutputStream(destFile);
    77             // 2097152(Byte)=2048(KB)=2M
    78             byte[] buffer = new byte[2097152];
    79             int size = 0;
    80             // 每次读取一个字节数组
    81             while ((size = in.read(buffer)) != -1)
    82             {
    83                 // 读到多少写入多少
    84                 out.write(buffer, 0, size);
    85             }
    86             in.close();
    87             out.close();
    88         }
    89 
    90     }
  • 相关阅读:
    vue项目搭建
    轮播 删除中间的还是居中
    随内容增加,背景不设高度自适应,背景图不拉伸和变形
    緢点连接
    左侧背景,右侧数据,根据数据左侧背景自适应
    问题
    手机访问网站,点击手机号码直接拨打电话
    长度超出之后文字变成省略号
    css中vw,vh单位对于UC的兼容性问题
    线性渐变的兼容性写法
  • 原文地址:https://www.cnblogs.com/CheeseIce/p/10768676.html
Copyright © 2020-2023  润新知