IO流实现文件及文件夹的复制
2024-08-30 12:48:43
TestCopyDocuments.java
package com.sxt.parc;
/*
* 复制文件夹 包含文本 视频 音频 用字节流
*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream; public class TestCopyDocuments {
public static void main(String[] args) throws Exception {
copyDocuments("G:\\source.txt","G:\\dest.txt");
} public static void copyDocuments(String SourcePath, String DestPath) throws Exception {
//读入文件到程序
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(SourcePath));
//写入数据到文件
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(DestPath));
byte[] b = new byte[1024];
int len = 0;
while((len = bis.read(b)) != -1){
bos.write(b, 0, len);
}
bis.close();
bos.close();
System.out.println("复制文件完成!");
}
}
TestCopyFiles2.java
package com.sxt.parc;
/*
* 文件夹以及文件的复制
*/
import java.io.File; public class TestCopyFiles2 {
public static void main(String[] args) throws Exception {
CopyFiles("G:\\source","G:\\dest");
System.out.println("*********复制完成**************");
} private static void CopyFiles(String sourcePath, String destPath) throws Exception {
//源路径
File file = new File(sourcePath);
// String name = file.getName();
// System.out.println(name);
//检查源路径是否正确
if(!file.exists()){
System.out.println("请检查您的源路径是否合法!");
} //目标路径
File file2 = new File(destPath);
//如果目标文件夹不存在则创建
if(!file2.exists()){
file2.mkdir();//当前目录创建
} // //列出源文件夹的文件和文件夹列表准备复制
// String[] list = file.list();//String类型
// for(String doc: list){
// System.out.println(doc);
// }
//列出源文件夹的文件和文件夹列表准备复制
File[] listFiles = file.listFiles();
for(File f :listFiles){
System.out.println(f.getName());
//如果是文件夹需要在目标文件夹下创建文件夹
if(f.isDirectory()){
//关键步骤:递归
//System.out.println(f+"--------->"+destPath+"\\"+f.getName());
CopyFiles(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
}
//如果不是文件夹直接复制
if(f.isFile()){
//关键步骤:递归
//System.out.println(f+"--------->"+destPath+"\\"+f.getName());
TestCopyDocuments.copyDocuments(sourcePath+"\\"+f.getName(),destPath+"\\"+f.getName());
}
}
}
}
最新文章
- BCP导出导入大容量数据实践
- Linux objcopy命令
- Swift UICollectionView 简单使用
- msyql数据库位置
- Unity-Animator深入系列---Foot IK
- transform.position和transform.localPosition区别
- Codevs 2449 骑士精神 2005年省队选拔赛四川
- LabVIEW设计模式系列——普遍使用值改变事件
- nefu 197 关键字检索(kmp算法)
- nginx+gridfs+mongodb 配置访问png图片显示无法加载问题
- centos6.5安装rabbitmq3.6.14
- struts2(六)之ognl表达式与ActionContext、ValueStack
- LeetCode算法题-Image Smoother(Java实现)
- admin组件
- 移动web总结
- VUE 打包后关于 -webkit-box-orient: vertical; 消失,导致多行溢出不管用问题
- shadow一键安装
- 洛谷 P1361 小M的作物 解题报告
- Explaining Delegates in C# - Part 2 (Events 1)
- sql,去重
热门文章
- Django项目:CRM(客户关系管理系统)--43--35PerfectCRM实现CRM重写Admin密码修改
- 通过Struts2Web应用框架深入理解MVC
- IO流3 --- File类的常用方法2 --- 技术搬运工(尚硅谷)
- Django REST Framework之认证组件
- python 关于如何把json文件里面的多条数据删除,只保留自己需要的条目
- IO 性能 $ iostat -kx 2$ vmstat 2 10$ mpstat 2 10$ dstat --top-io --top-bio
- jquery 调用asp.net后台代码
- 对于MD5加密处理方式
- 组合数取模(lucas定理+CRT合并)(AC)
- POJ 1061 扩展欧几里得