import java.io.*;/*** IO流递归拷贝一个文件夹里面的所有文件,到另一个文件夹。如果重复不拷贝,可续拷* @author  silence*/
public class IoCopy {private static int count = 0;/*** 需要拷贝的起始地“文件夹路径”*/private static final File START = new File("C:\\Users\\Administrator\\Desktop\\作业");/*** 目的地“文件夹路径”*/private static final File END = new File("C:\\Users\\Administrator\\Desktop\\111");public static void main(String[] args) throws IOException {//判断文件路径ifFile();//拷贝文件load(START);System.out.println("-----程序结束,拷贝 " + count + " 条数据-----");}/*** 判断文件路径*/private static void ifFile() {//判断起始地和目的地是否为文件,并且是否存在if (!START.exists() || !START.isDirectory()) {System.out.println("起始地路径 不存在,或不为文件夹");System.exit(1);}//判断目的地是否存在,且为文件夹if (!END.exists() || !END.isDirectory()) {boolean mkdirs = END.mkdirs();//如果创建失败if (!mkdirs) {System.out.println("目的地路径不存在,或存在相同名的文件,文件夹自动创建失败");System.out.println("解决办法:检测路径是否正确,删除该路径同名的文件");System.exit(1);}}}/*** @param start 源文件路径*/private static void load(File start) {File[] files = start.listFiles();if (files == null) {return;}for (File f : files) {try {if (f.isFile()) {if (!isEedFile(f)) {//如果目的地没有改文件,或者文件大小不一致BufferedInputStream input = new BufferedInputStream(new FileInputStream(f));BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(END + "\\" + f.getName()));System.out.println("正在复制第" + (++count) + "条数据:" + f.getName());byte[] arr = new byte[1024];int len;while ((len = input.read(arr)) != -1) {out.write(arr, 0, len);}input.close();out.close();continue;}System.out.println(f.getName() + "重复  已跳过");} else {//递归读取load(f);}} catch (IOException e) {System.out.println("文件拷贝过程出现异常,程序退出");System.exit(1);}}}/*** 判断目的地是否包含改文件, 不支持多层递归判断** @param f 当前文件*/private static boolean isEedFile(File f) {File[] files = END.listFiles();if (files != null) {for (File file : files) {//只判断文件if (file.isFile()) {if (f.getName().equals(file.getName())) {//文件名一致,再判断文件大小是否一致,是否覆盖复制return f.length() == file.length();}}}}return false;}
}

IO流递归拷贝一个文件夹里面的所有文件,到另一个文件夹。如果重复不拷贝,可续拷相关推荐

  1. * IO流递归拷贝一个文件夹 按源文件夹格式拷贝

    import java.io.*;/*** IO流递归拷贝一个文件夹 按源文件夹格式拷贝** @author silence*/ public class IoCopy2 {private stati ...

  2. 1-19 HashMap、IO流递归遍历文件实战

    文章目录 1.本篇文章目的 2.需求场景 1)准备员工信息文件 2)需要完成的内容 3.开发工作 1)开发思路分析 2)开发 3)结果 公众号有技能演示视频,大家可搜索添加公众号 taishangco ...

  3. c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2

    软帝学院笔记Day18 IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符 ...

  4. java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势

    image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...

  5. Java - 文件(IO流)

    Java - 文件 (IO) 流的分类:     > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter     & ...

  6. 一文搞定Java IO流√

    目录 一.File类 1.1.File常用方法 1.2.练习 二.IO流操作 2.1.流的分类 2.2.四大基本流 2.3.操作IO流的模板 三.字节输入流(InputStream) 3.1.常用方法 ...

  7. Java基础学习(二十七)之IO流

    1. File 1.1 File类概述和构造方法(myFile中的com.itheima_01中的FileDemo01) File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对 ...

  8. 十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)

    文章目录 IO流 (一)File 1.File类的概述和构造方法 2.File类的创建功能 3.File类判断和获取功能 4.File类的删除功能 5.递归 6.案例(递归求阶乘) 7.案例(遍历目录 ...

  9. Java中的IO流与Properties

    IO流 1 File 1.1 File类概述和构造方法 File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一 ...

最新文章

  1. Opencv C++ 归一化
  2. mysql 相除 取整数位,psql除法保留小数,实现向上取整和向下取整操作_PostgreSQL_数据库...
  3. Linux下crontab(自动重启)的格式备忘
  4. 使用Redis set 解决数据的唯一性问题
  5. 常见的使用ICMP协议的命令
  6. 华为交换机STP的配置实例
  7. labview 一个tdms文件 两个线程同时往里写_LabVIEW 状态图(Statechart)介绍
  8. ubuntu 14.04 安装minidwep-gtk
  9. 逻辑覆盖测试(五)条件组合覆盖
  10. matlab识别不出rep,请教:MATLAB中遗传算法如何处理REP等函数的未识别
  11. android远程指纹认证流程的猜测
  12. Ideas For Weakly Supervised Object Localization
  13. 笔试题————一套实用的渗透测试岗位面试题
  14. c++ 箭头符号怎么打_c++笔记--重载箭头运算符
  15. 网络攻防学习心得一(20159320)学习小结
  16. 计算机图形学结课论文,计算机图形学基础教程结课论文
  17. html、css 实现一个漂亮的表格
  18. 写GML到一个复杂的应用模式
  19. linux Linux入门
  20. Python爬虫--爬取妹子网

热门文章

  1. c语言如何用循环语句一个字一个字的输出,怎样用c语言的for嵌套循环,用·画出泳字,求解,主要是怎样用循环语句打出,在某一行中既有空格又有·...
  2. python与tensorflow的关系_python – 在TensorFlow,Session.run()和Tensor.eval()之间有什么区别?...
  3. ARM中的ldr指令与adr、ldr伪指令之间的区别
  4. WinCE系统的编译过程详解
  5. Java多进程测试用例_Pytest xdist/Pytest并行多进程执行测试用例,pytestxdistpytestparallel...
  6. python爬虫淘宝评论_Python爬取淘宝店铺和评论
  7. ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求
  8. 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
  9. Docker核心组件的关系
  10. [转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案