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 ...
随机推荐
- HTML和css面试题:内容转载
1.常见的块级元素 内联元素 div -最常用的块级元素 dl - 和dt-dd 搭配使用的块级元素 form - 交互表单 h1 -h6- 大标题 hr - 水平分隔线 ol – 有序列表 p - ...
- 菜鸟手把手学Shiro之shiro认证流程
一.使用的spring boot +mybatis-plus+shiro+maven来搭建项目框架 <!--shiro--> <dependency> <groupId& ...
- 攻克数通,斩获云计算!誉天Double HCIE学员考证秘笈揭晓
不知不觉,已经过了四个月的时间了,我是六月多报名云计算的,本来是奔着邹Sir去的,但是当时邹sir已经上到HCIE的课程了,只能蹭学弟之前的录屏看.等到七月八号,又正式跟了曾曦老师上了一次完整的课程. ...
- Openlayers Overlay加载gif图片
说明: 项目中使用vector图层做图片撒点功能,发现加载gif没有效果.网上查找资料发现,openlayers不支持gif图片样式. 后面采用overlay的方式,gif图片赋值给DOM元素 解决方 ...
- 安卓开发之Java学习
Java之素数(这里附上王智超大佬的博客地址)https://blog.csdn.net/weixin_43862765/article/details/103311286
- c# 为什么会出现死锁?多线程死锁怎么解决
出现死锁必须满足以下几个条件: 1.互斥条件:该进程拥有的资源,其他进程只能等待其释放. 2.不剥夺条件:该进程拥有的资源只能由它自己来释放. 3.请求和保持条件:请求其他的资源,同时自己拥有的资源又 ...
- Java方法的可变参数
class Demo { public static int sum(int ... data) { //此处可以传递一个数组,也可以是多个参数 int sum = 0; for (int i : d ...
- Java核心技术第八章-泛型
摘要 本文根据<Java核心技术 卷一>一书的第八章总结而成,部分文章摘抄书内,作为个人笔记. 文章不会过于深入,望读者参考便好. 为什么要使用泛型程序设计 泛型程序设计(Generic ...
- Node_exporter一键安装部署脚本(Shell)
#!/bin/bash # # rhel7. 安装node_exporter 用于监控数据采集 # Usage: # sh addNode.sh #Logs: /var/log/messages #H ...
- 【前端】之JavaScript基础知识
JS 基础知识 JS中,简单类型的数据存储在栈中,复杂类型的数据存储在堆中,其引用存储在栈中 JS中的深拷贝和浅拷贝: 浅拷贝:将对象中的所有简单类型的属性拷贝出来,引用类型属性直接赋值null 深拷 ...