使用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 = ; 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[];
  79. int size = ;
  80. // 每次读取一个字节数组
  81. while ((size = in.read(buffer)) != -)
  82. {
  83. // 读到多少写入多少
  84. out.write(buffer, , size);
  85. }
  86. in.close();
  87. out.close();
  88. }
  89.  
  90. }

平时作业五 Java的更多相关文章

  1. Java 平时作业五

    使用 I/O 流和文件对象实现目录备份功能. package asg5; import java.io.File; import java.io.FileInputStream; import jav ...

  2. 平时作业七 Java

    以下是几本计算机书籍的基本信息编号 书名 价格 出版社1 JAVA基础 32 清华大学出版社2 JAVA WEB开发 40 电子工业出版社3 面向对象程序设计 28 清华大学出版社4 Struts开发 ...

  3. 平时作业六 java

    编写一个Java应用程序,使用Java的输入输出流技术将Input.txt的内容(Input.txt为文本文件)逐行读出,每读出一行就顺序为其添加行号(从1开始,逐行递增),并写入到另一个文本文件Ou ...

  4. 20145213《Java程序设计》实验五Java网络编程及安全

    20145213<Java程序设计>实验五Java网络编程及安全 实验内容 1.掌握Socket程序的编写. 2.掌握密码技术的使用. 3.设计安全传输系统. 实验预期 1.客户端与服务器 ...

  5. 20145206《Java程序设计》实验五Java网络编程及安全

    20145206<Java程序设计>实验五 Java网络编程及安全 实验内容 1.掌握Socket程序的编写: 2.掌握密码技术的使用: 3.设计安全传输系统. 实验步骤 我和201451 ...

  6. 20145337实验五Java网络编程及安全

    20145337实验五Java网络编程及安全 实验内容 掌握Socket程序的编写 掌握密码技术的使用 设计安全传输系统 实验步骤 基于Java Socket实现安全传输 基于TCP实现客户端和服务器 ...

  7. JAVA课程实验报告 实验五 Java网络编程及安全

    北京电子科技学院(BESTI) 实     验    报     告 课程:Java程序设计  班级:1353  姓名:韩玉琪  学号:20135317 成绩:             指导教师:娄嘉 ...

  8. 20145225《Java程序设计》 实验五 Java网络编程及安全

    20145225<Java程序设计> 实验五 Java网络编程及安全 实验报告 一.实验内容 基于Java Socket实现安全传输. 基于TCP实现客户端和服务器,结对编程一人负责客户端 ...

  9. 20145208 实验五 Java网络编程

    20145208 实验五 Java网络编程 实验内容 1.用书上的TCP代码,实现服务器与客户端. 2.客户端与服务器连接 3.客户端中输入明文,利用DES算法加密,DES的秘钥用RSA公钥密码中服务 ...

随机推荐

  1. 五十四、linux 编程——TCP 编程模型

    54.1 编程模型介绍 54.1.1 TCP 客户端服务器编程模型 客户端调用序列 调用 socket 函数创建套接字 调用 connect 连接服务器端 调用 I/O 函数(read/write) ...

  2. app每次更新版本时调用js代码提示用户下载更新

    var url = '网络地址'; //APP升级 var wait; function update(){ //判断操作系统 var system = 'android'; if(mui.os.io ...

  3. 获取spring的IOC核心容器,并根据id获取对象

    public class Client { /** * 获取spring的IOC核心容器,并根据id获取对象 * ApplicationContext的三个常用实现类 * classPathXmlAp ...

  4. Map的几种取值方法

    public static void main(String[] args) throws IOException,ParseException { Map<String,String> ...

  5. 413 重温HTML + css 考试 + 访问HTML元素

    考试前的复习 初学css1:认识CSS 1.1:css简介,css全称是层叠样式表,Cascading style sheets 1.2:css的作用,主要是用于定义html内容在浏览器内的显示样式, ...

  6. Pytorch学习笔记(一)---- 基础语法

    书上内容太多太杂,看完容易忘记,特此记录方便日后查看,所有基础语法以代码形式呈现,代码和注释均来源与书本和案例的整理. # -*- coding: utf-8 -*- # All codes and ...

  7. css悬浮提示框

    效果图: code: <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  8. Mysql 时间差(年、月、天、时、分、秒)

    SELECT TIME_TO_SEC(TIMEDIFF('2018-09-30 19:38:45', '2018-08-23 10:13:01')) AS DIFF_SECOND1, -- 秒 UNI ...

  9. 搭建Linux运行环境-虚拟机

    1.虚拟机软件介绍 虚拟机(Virtual Machina)软件就是一套特殊的软件,它可以作为系统独立运行,也可以运行与系统之上. 若是运行与系统之上的虚拟机软件,在一台电脑(PC或笔记本等)上安装虚 ...

  10. identifier of an instance of **** was altered from **** to *****

    在用hibernate getSession().save(entity)方法保存数据库表实体类的时候报这个异常 我的需求是一个请求要往数据库表插两条数据,根据传值判断做了for循环调两次save() ...