IO流-复制多极文件夹(递归实现)
package com.io.test; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; /*
* 复制多极文件夹
* 数据源: F:\\Demo
* 目的地: D:\\demo
*
* 分析:
* A:封装数据源
* B:封装目的地
* C:获取该File对象下所有的文件夹或文件
* 遍历每一个File对象
* D:判断是否是文件夹或文件
* 是文件夹:
* 就在目的地目录下创建该文件夹File
* 回到C
*
* 是文件:
* 直接复制
*/
public class Test07_标准版 {
public static void main(String[] args) throws IOException {
File srcFolder=new File("f:\\Demo");
File destFolder=new File("d:\\demo");
if(!destFolder.exists()){
destFolder.mkdir();
}
copyFolder(srcFolder,destFolder);
}
//复制文件夹
public static void copyFolder(File srcFolder, File destFolder) throws IOException {
File[] listFiles = srcFolder.listFiles();
for(File f:listFiles){
if(f.isDirectory()){
//创建新的目录 File newFolder=new File(destFolder,f.getName());
newFolder.mkdir();
copyFolder(f,newFolder); }else{
//复制文件
File newFile=new File(destFolder,f.getName());
copyFile(f,newFile);
}
}
}
//复制文件
public static void copyFile(File file, File newFile) throws IOException {
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(newFile));
int len=0;
byte[] buf=new byte[1024];
while((len=bis.read(buf))!=-1){
bos.write(buf, 0, len);
bos.flush();
}
bis.close();
bos.close();
}
}
IO流-复制多极文件夹(递归实现)的更多相关文章
- IO流(五)__文件的递归、Properties、打印流PrintStream与PrintWriter、序列流SequenceInputStream
一.文件的遍历 1.需求:对指定目录进行所有的内容的列出(包含子目录的内容)-文件的深度遍历 思想:递归的思想,在递归的时候要记住递归的层次. public class FileTest { publ ...
- java IO流实现删除文件夹以及文件夹中的内容
这篇主要是对IO文件流对文件常用处理中的删除文件夹,平时我们直接删除文件夹既可以删除里面的全部内容. 但是java在实现删除时,只能是文件才会被删除. 所以这里需要定义一个方法,来递归调用方法(递归调 ...
- Java基础知识强化之IO流笔记50:IO流练习之 复制多级文件夹的案例
1. 复制多级文件夹的案例 需求:复制多级文件夹 数据源:E:\JavaSE\day21\code\demos 目的地:E:\ 分析: A:封装数据源File ...
- IO流(10)复制多级文件夹
import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import ja ...
- IO流案例:1.复制多级文件夹 2.删除多级文件夹
package copy; /* 需求:复制多级文件夹 复制d:\\itcast(包含文件和子文件夹)到模块目录下 分析: d:\\itcast a.txt b.txt javaweb a.xml b ...
- java中递归实现复制多级文件夹
常见的流的用法 递归实现复制多级文件夹 FileInputStream & FileOutputStream String content = null;//用来储存解码后的byte数组 in ...
- 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt
package com.readme; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; i ...
- Python批量复制迁移文件夹
前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...
- Linux 下复制整个文件夹的命令
在 Linux 下复制整个文件夹,包括它的子文件夹及其隐藏文件的方法是: cp -r /etc/skel /home/user 或者 mkdir /home/<new_user> cp - ...
随机推荐
- HDU 6199 2017沈阳网络赛 DP
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6199 题意:n堆石子,Alice和Bob来做游戏,一个人选择取K堆那么另外一个人就必须取k堆或者k+1 ...
- Python的日志记录-logging模块的使用
一.日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法,软件开发者在代码中调用日志函数,表明发生了特定的事件,事件由描述性消息描述,同时还包含事件的重要性,重要性也称为级别或严重性. ...
- 工作常用shell集合
<1>日志回滚案例======>[root@localhost test]# cat hbase.sh hbase_rotate_log () { log=$1; ...
- ActiveMQ 使用场景
ActiveMQ 安装测试就不做介绍了,下面我说说ActiveMQ 使用场景.(松耦合与ActiveMQ) 1.非均匀应用集成 ActiveMQ 中间件用Java语言编写,因此自然提供Java客户端 ...
- NVME SSD vs SATA SSD(转)
NVMe是个啥?未来SSD主流标准早知 关注固态硬盘的朋友应该对于这个词汇并不陌生,特别是今年NVMe也频繁出现在各大媒体文章中,随着高端SSD市场逐渐从SATA专项PCI-E时,以前的AHCI标准已 ...
- 【前端vue开发】vue项目使用sass less扩展语言所要安装的依赖
1.创建一个基于 webpack 模板的新项目 $ vue init webpack myvue 2.在当前目录下,安装依赖 $ cd myvue $ npm install 3.安装sass的依赖包 ...
- webpack3学习笔记
地址:https://segmentfault.com/a/1190000006843916 地址:https://www.chungold.com/my/course/32 地址:http://js ...
- python之路:python基础3
---恢复内容开始--- 本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 ...
- 【读书笔记】Android的Ashmem机制学习
Ashmem是安卓在linux基础上添加的驱动模块,就是说安卓有linux没有的功能. Ashmem模块在内核层面上实现,在运行时库和应用程序框架层提供了访问接口.在运行时库层提供的是C++接口,在应 ...
- Ubuntu 使用命令更新 Ubuntu 系统
我们都知道 Ubuntu 是一款 Linux 系统,是开源的系统,随时都在更新,所以人们都说 Linux 系统要比 Windows 系统安全.那么为了我们的电脑安全,我们如何利用 Ubuntu 命令来 ...