IO流递归拷贝一个文件夹里面的所有文件,到另一个文件夹。如果重复不拷贝,可续拷
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流递归拷贝一个文件夹里面的所有文件,到另一个文件夹。如果重复不拷贝,可续拷相关推荐
- * IO流递归拷贝一个文件夹 按源文件夹格式拷贝
import java.io.*;/*** IO流递归拷贝一个文件夹 按源文件夹格式拷贝** @author silence*/ public class IoCopy2 {private stati ...
- 1-19 HashMap、IO流递归遍历文件实战
文章目录 1.本篇文章目的 2.需求场景 1)准备员工信息文件 2)需要完成的内容 3.开发工作 1)开发思路分析 2)开发 3)结果 公众号有技能演示视频,大家可搜索添加公众号 taishangco ...
- c++文件流读取一行_「软帝学院」Java挑战者专栏:IO流详解2
软帝学院笔记Day18 IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符 ...
- java中的常用的文件流_Java 基础(四)| IO 流之使用文件流的正确姿势
image.png 一.什么是 IO 流? 想象一个场景:我们在电脑上编辑文件,可以保存到硬盘上,也可以拷贝到 U 盘中.那这个看似简单的过程,背后其实是数据的传输. 数据的传输,也就是数据的流动.既 ...
- Java - 文件(IO流)
Java - 文件 (IO) 流的分类: > 文件流:FileInputStream | FileOutputStream | FileReader | FileWriter & ...
- 一文搞定Java IO流√
目录 一.File类 1.1.File常用方法 1.2.练习 二.IO流操作 2.1.流的分类 2.2.四大基本流 2.3.操作IO流的模板 三.字节输入流(InputStream) 3.1.常用方法 ...
- Java基础学习(二十七)之IO流
1. File 1.1 File类概述和构造方法(myFile中的com.itheima_01中的FileDemo01) File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对 ...
- 十五、IO流【黑马JavaSE笔记】(本文文中记录了个人学习感受)
文章目录 IO流 (一)File 1.File类的概述和构造方法 2.File类的创建功能 3.File类判断和获取功能 4.File类的删除功能 5.递归 6.案例(递归求阶乘) 7.案例(遍历目录 ...
- Java中的IO流与Properties
IO流 1 File 1.1 File类概述和构造方法 File:它是文件和目录路径名的抽象表示 文件和目录是可以通过File封装成对象的 对于File而言,其封装的并不是一个真正存在的文件,仅仅是一 ...
最新文章
- Opencv C++ 归一化
- mysql 相除 取整数位,psql除法保留小数,实现向上取整和向下取整操作_PostgreSQL_数据库...
- Linux下crontab(自动重启)的格式备忘
- 使用Redis set 解决数据的唯一性问题
- 常见的使用ICMP协议的命令
- 华为交换机STP的配置实例
- labview 一个tdms文件 两个线程同时往里写_LabVIEW 状态图(Statechart)介绍
- ubuntu 14.04 安装minidwep-gtk
- 逻辑覆盖测试(五)条件组合覆盖
- matlab识别不出rep,请教:MATLAB中遗传算法如何处理REP等函数的未识别
- android远程指纹认证流程的猜测
- Ideas For Weakly Supervised Object Localization
- 笔试题————一套实用的渗透测试岗位面试题
- c++ 箭头符号怎么打_c++笔记--重载箭头运算符
- 网络攻防学习心得一(20159320)学习小结
- 计算机图形学结课论文,计算机图形学基础教程结课论文
- html、css 实现一个漂亮的表格
- 写GML到一个复杂的应用模式
- linux Linux入门
- Python爬虫--爬取妹子网
热门文章
- c语言如何用循环语句一个字一个字的输出,怎样用c语言的for嵌套循环,用·画出泳字,求解,主要是怎样用循环语句打出,在某一行中既有空格又有·...
- python与tensorflow的关系_python – 在TensorFlow,Session.run()和Tensor.eval()之间有什么区别?...
- ARM中的ldr指令与adr、ldr伪指令之间的区别
- WinCE系统的编译过程详解
- Java多进程测试用例_Pytest xdist/Pytest并行多进程执行测试用例,pytestxdistpytestparallel...
- python爬虫淘宝评论_Python爬取淘宝店铺和评论
- ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求
- 第一节: Timer的定时任务的复习、Quartz.Net的入门使用、Aop思想的体现
- Docker核心组件的关系
- [转载]使用消息队列实现分布式事务-公认较为理想的分布式事务解决方案