• Java 平时作业五


    使用 I/O 流和文件对象实现目录备份功能。

     1 package asg5;
     2 import java.io.File;
     3 import java.io.FileInputStream;
     4 import java.io.FileOutputStream;
     5 import java.io.IOException;
     6 public class copyFileDir {
     7     
     8 
     9     
    10         public static void main(String[] args) throws IOException
    11         {
    12             copyDir("D:\大二\java\Java程序设计课件", "D:\大二\java\1");
    13         }
    14         /**
    15          * 使用递归复制目录,
    16          * 
    17          * @param FromDir
    18          *            源目录的路径名称
    19          * @param ToDir
    20          *            目的目录的路径名称
    21          * @throws IOException
    22          */
    23         public static void copyDir(String FromDir, String ToDir) throws IOException
    24         {
    25             // 创建目录的File对象
    26             File srcDir = new File(FromDir);
    27             // 判断源目录是不是一个目录
    28             if (!srcDir.isDirectory())
    29             {
    30                 // 如果不是目录那就不复制
    31                 return;
    32             }
    33             // 创建目的目录的File对象
    34             File destDir = new File(ToDir);
    35             // 如果目的目录不存在
    36             if (!destDir.exists())
    37             {
    38                 // 创建目的目录
    39                 destDir.mkdir();
    40             }
    41 
    42             // 获取源目录下的File对象列表,每一个对象代表一个目录或者文件
    43             File[] srcDirList = srcDir.listFiles();
    44             // 遍历源目录File对象列表
    45             for (int i = 0; i < srcDirList.length; i++)
    46             {
    47                 // 如果是目录的话
    48                 if (srcDirList[i].isDirectory())
    49                     
    50                 {
    51                     // 递归调用复制该目录
    52                     copyDir(FromDir + File.separator + srcDirList[i].getName(),
    53                             ToDir + File.separator + srcDirList[i].getName());
    54                 }
    55                 // 如果是文件的话
    56                 if (srcDirList[i].isFile())
    57                 {
    58                     // 调用复制文件的方法
    59                     copyFile(FromDir + File.separator + srcDirList[i].getName(),
    60                             ToDir + File.separator + srcDirList[i].getName());
    61                 }
    62 
    63             }
    64         }
    65         /**
    66          * 复制一个文件
    67          * 
    68          * @param srcFile
    69          *            源文件
    70          * @param destFile
    71          *            目的文件
    72          * @throws IOException
    73          */
    74         public static void copyFile(String srcFile, String destFile)
    75                 throws IOException
    76         {
    77             FileInputStream in = new FileInputStream(srcFile);
    78             FileOutputStream out = new FileOutputStream(destFile);
    79             // 2097152(Byte)=2048(KB)=2M
    80             byte[] buffer = new byte[2097152];
    81             int size = 0;
    82             // 每次读取一个字节数组
    83             while ((size = in.read(buffer)) != -1)
    84             {
    85                 // 读到多少写入多少
    86                 out.write(buffer, 0, size);
    87             }
    88             in.close();
    89             out.close();
    90         }
    91 
    92     }
    93     

    用户指定源目录、目标目录以及备份文 件类型(如果是任意文件使用通配符*号),通过此程序可将源目录及其所有子目录 下的指定类型文件保存到目标目录

  • 相关阅读:
    windows下启动数据库、创建数据表、角色等
    直播流的来源
    win10如何查看已保存的账号信息
    Tomcat+IDEA
    线程安全-Spring Bean 作用域类型(Scope)
    ECMAScript6学习-2.1let与const
    解决Mac上Android开发时adb连接不到手机问题
    8个不可不知的Mac OS X专用命令行工具(转)
    ios 中获得应用程序名称和版本号
    iPhone 6 图像渲染揭秘(转)
  • 原文地址:https://www.cnblogs.com/BigWatermelon/p/10679904.html
Copyright © 2020-2023  润新知