IO 文件夹的拷贝
package FileCopy; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.LinkedList;
import java.util.Queue; public class CopyFileV2 {
public static void main(String agrs[]){
String srcFileName = "F:" + File.separator + "ppt";
String destFilePath = "D:" + File.separator + "copyFileExam"; // copy(srcFileName, destFilePath);
rNoCopy(srcFileName, destFilePath);
System.out.println("拷贝完成!!!"); } private static void rNoCopy(String fileName, String destFileName){ Queue<String[]> fPQ = new LinkedList<String[]>();
String[] s = new String[2];
s[0] = fileName;
s[1] = destFileName;
fPQ.offer(s); int i = 0; while(!fPQ.isEmpty()){ for(String[] st : fPQ){
for(String str : st)
System.out.println(str);
} System.out.println("\n" + i++);
String[] filePath = fPQ.poll(); File file = new File(filePath[0]);
File destFile = new File(filePath[1]); if(!destFile.exists()){
destFile.mkdirs();
System.out.println("创建多级列表成功!!!");
} File files[] = file.listFiles(); for(File f: files){
if(f.isFile()){
fileCopy(f.getPath(), filePath[1] + File.separator + f.getName());
}
else if(f.isDirectory()){
String[] temps = new String[2]; temps[0] = f.getPath();
temps[1] = filePath[1] + File.separator + f.getName(); fPQ.offer(temps);
}
}
}
} private static void copy(String fileName, String destFileName){
File file = new File(fileName);
File destFile = new File(destFileName); File files[] = file.listFiles(); if(!destFile.exists()){
destFile.mkdirs();
} for(File f: files){
if(f.isFile()){
fileCopy(f.getPath(), destFileName + File.separator + f.getName());
}
else if(f.isDirectory()){
copy(f.getPath(), destFileName + File.separator + f.getName());
}
} } private static void fileCopy(String fileName, String destFileName){
System.out.println("正在拷贝文件!!!");
File file = new File(fileName);
File destFile = new File(destFileName); // InputStream is = null;
// OutputStream os = null;
BufferedInputStream bis = null;
BufferedOutputStream bos = null; try {
bis = new BufferedInputStream(new FileInputStream(file));
bos = new BufferedOutputStream(new FileOutputStream(destFile)); byte bytes[] = new byte[1024];
while( bis.read(bytes) != -1 ){
bos.write(bytes);
bos.flush();
}
} catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
// os.flush();
// is.close();
// os.close();
bos.flush();
bis.close();
bos.close();
} catch (IOException e) {
e.printStackTrace();
}
} // private static void getAllFileList(String fileName){
// File file = new File(fileName);
// File files[] = file.listFiles();
//
// for(File f: files){
// if(f.isFile()){
//
// }
// if(f.isDirectory()){
// getAllFileList(f.toString());
// }
// else {
// System.out.println(f.getName());
// }
// }
//
// }
}
}
IO 文件夹的拷贝的更多相关文章
- IO流-文件夹的拷贝
文件夹的拷贝操作 要求: 完成文件夹的拷贝,包括子目录的拷贝和所有文件的拷贝 分析: 首先,得在目标目录下创建一个与源文件夹名称相同的文件夹 遍历源文件夹中的所有文件对象,判断子文件是目录还是文件 如 ...
- Java字节流实现文件夹的拷贝
import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io ...
- Linux下 两台机器文件/文件夹 相互拷贝
Linux下 两台机器文件/文件夹 相互拷贝 设有两台机器 :A:*.101及 B:*.102. 把A下的.temp/var/a.txt拷贝到B机器的/text/目录下: 进入B机器:scp root ...
- IO文件夹拷贝(文件内含有文件和文件夹)
/** * 文件夹拷贝(文件内含有文件和文件夹) * * @param src * @param des */ private static void copy(String src, String ...
- shell脚本编写某一文件夹内拷贝某一段文件(有则跳过没有则拷贝)
必须是同一台服务器下,或者挂载目录,不同服务器下没办法查询目录中是否有该文件 如果不在同一服务器下,可以把要查询的那个服务器的文件夹设置共享挂在到当前服务器 或者可以把脚本写到要拷贝的服务器上,那么s ...
- python根据列表创建文件夹,拷贝指定文件
内容涉及:关键字定位,列表去重复,路径组装,文件夹创建,文件拷贝,字符串分割 list.txt的内容为包含关键字的文件路径,如:关键字 ’181‘ org/20190523/1/20190523201 ...
- python实现从文件夹随机拷贝出指定数量文件到目标文件夹
为了方便倒腾数据,功能如题,该脚本和操作目录在同一根目录 实际运行时要手动修改程序中:cpfile_rand('img', 'outfile', 10) # 操作目录,输出目录,输出数量 import ...
- C++实现将一个文件夹内容拷贝至另一个文件夹
Windows提供了非常好用的方法SHFileOperation,而且功能强大, 不光可以拷贝,还有移动.删除等等操作.直接上代码: 1 void CopyFolder(TCHAR* srcFolde ...
- Java_文件夹拷贝
一.思路 * 文件夹的拷贝 1.递归查找子孙级文件 2.文件复制 文件夹创建 二.代码 package com.ahd.File; import java.io.File; import java.i ...
随机推荐
- 为什么我加了索引,SQL执行还是这么慢(二)?
接上文 在MySQL中,有一些语句即使逻辑相同,执行起来的性能差异确实极大的. 还记得我们上文中的结论吗:如果想使用索引树搜索功能,就不能使用数据库函数来处理索引字段值,而是在不改变索引字段值的同时, ...
- React第一次渲染为何容易出现TypeError: Cannot read property 'XX' of undefined
此题可能大家会不屑一顾,哎,错误都给你怼脸上了你还不会嘛,其实大家有没有认真思考过这其中的原因.先上一张错误图,剩余的全靠编.没兴趣看图的老铁们可以拉到最底下直接看结论 错误: 代码: 其次,我再把 ...
- 关于MXNet
关于人工智能,机器学习,深度学习 三者关系:从宏观到微观. 机器学习是人工智能的一部分,深度学习是机器学习的一部分. 基础:大数据. 关于深度学习 深度学习基于神经网络, 关于神经网络:通过叠加网络层 ...
- lqb 基础练习 数列特征
基础练习 数列特征 时间限制:1.0s 内存限制:256.0MB 问题描述 给出n个数,找出这n个数的最大值,最小值,和. 输入格式 第一行为整数n,表示数的个数. 第二行有n个数,为给定 ...
- JS如何在不给新空间的情况下给数组去重?
1.先排序,在让相邻元素对比去重 const nums = [3, 1, 1, 5, 2, 3, 4, 3, 5, 5, 6, 4, 6, 6, 6]; Array.prototype.arrayNo ...
- 领扣(LeetCode)错误的集合 个人题解
集合 S 包含从1到 n 的整数.不幸的是,因为数据错误,导致集合里面某一个元素复制了成了集合里面的另外一个元素的值,导致集合丢失了一个整数并且有一个元素重复. 给定一个数组 nums 代表了集合 S ...
- 领扣(LeetCode)寻找旋转排序数组中的最小值 个人题解
假设按照升序排序的数组在预先未知的某个点上进行了旋转. ( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] ). 请找出其中最小的元素. 你可以假设数组中不存在重 ...
- 什么是TCP, UDP, HTTP, HTTPS协议?
TCP 传输控制协议是一种面向连接的.可靠的.基于字节流的传输层通信协议,由IETF的RFC793定义. TCP主要特点: 1. 面向连接: (1)应用程序在使用TCP协议之前,必须先建立TCP连接. ...
- 红帽学习笔记[RHCE]网络配置与路由转发
目录 网络配置基本的IPV4与IPV6 拓扑图 操作 新加一块网卡 将增加的网卡分别加到两台虚拟机上 在两台虚拟机上配置IPV4与 IPV6 配置域名访问 拓展路由转发 拓扑图 操作 关于网关设置 重 ...
- cglib测试例子和源码详解
目录 简介 为什么会有动态代理? 常见的动态代理有哪些? 什么是cglib 使用例子 需求 工程环境 主要步骤 创建项目 引入依赖 编写被代理类 编写MethodInterceptor接口实现类 编写 ...