java将一个目录下的所有数据复制到另一个目录下
作者:wangtianze 时间:2023-01-08 15:11:44
本文实例为大家分享了java将一个目录下的所有数据复制到另一个目录下的具体代码,供大家参考,具体内容如下
/*
将"C:\\JavaProducts\\Source"下的所有数据复制到"C:\\Target"下
*/
import java.io.*;
public class JavaCopyDemo{
final static String SOURCESTRING = "C:\\JavaProducts\\Source";
final static String TARGETSTRING = "C:\\Target";
public static void main(String[] args){
if(!(new File(SOURCESTRING)).exists()){
System.out.println("源文件" + SOURCESTRING + "不存在,无法复制!");
return;
}else if((new File(TARGETSTRING)).exists()){
System.out.println("目标文件" + TARGETSTRING + "已经存在,无法复制!");
return;
}else{
if((new File(SOURCESTRING)).isFile()){
copyFile(new File(SOURCESTRING),new File(TARGETSTRING));
}else if((new File(SOURCESTRING)).isDirectory()){
copyDirectory(SOURCESTRING,TARGETSTRING);
}
}
}
private static void copyFile(File sourceFile,File targetFile){
if(!sourceFile.canRead()){
System.out.println("源文件" + sourceFile.getAbsolutePath() + "不可读,无法复制!");
return;
}else{
System.out.println("开始复制文件" + sourceFile.getAbsolutePath() + "到" + targetFile.getAbsolutePath());
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
BufferedOutputStream bos = null;
try{
fis = new FileInputStream(sourceFile);
bis = new BufferedInputStream(fis);
fos = new FileOutputStream(targetFile);
bos = new BufferedOutputStream(fos);
int len = 0;
while((len = bis.read()) != -1){
bos.write(len);
}
bos.flush();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(fis != null){
fis.close();
}
if(bis != null){
bis.close();
}
if(fos != null){
fos.close();
}
if(bos != null){
bos.close();
}
System.out.println("文件" + sourceFile.getAbsolutePath() + "复制到" + targetFile.getAbsolutePath() + "完成");
}catch(IOException e){
e.printStackTrace();
}
}
}
}
private static void copyDirectory(String sourcePathString,String targetPathString){
if(!new File(sourcePathString).canRead()){
System.out.println("源文件夹" + sourcePathString + "不可读,无法复制!");
return;
}else{
(new File(targetPathString)).mkdirs();
System.out.println("开始复制文件夹" + sourcePathString + "到" + targetPathString);
File[] files = new File(sourcePathString).listFiles();
for(int i = 0; i < files.length; i++){
if(files[i].isFile()){
copyFile(new File(sourcePathString + File.separator + files[i].getName()),new File(targetPathString + File.separator + files[i].getName()));
}else if(files[i].isDirectory()){
copyDirectory(sourcePathString + File.separator + files[i].getName(),targetPathString + File.separator + files[i].getName());
}
}
System.out.println("复制文件夹" + sourcePathString + "到" + targetPathString + "结束");
}
}
}
来源:https://www.cnblogs.com/wangtianze/p/6690652.html
标签:java,数据复制
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Springboot整合Netty实现RPC服务器的示例代码
2023-07-14 11:35:35
Android如何禁止向EditText控件中输入内容详解
2021-07-29 05:01:11
SpringMVC Restful api接口实现的代码
2023-11-29 12:34:27
![](https://img.aspxhome.com/file/2023/8/60528_0s.jpg)
java8 Stream大数据量List分批处理切割方式
2023-02-10 22:34:36
浅谈Hibernate对象状态之间的神奇转换
2021-12-18 02:13:18
![](https://img.aspxhome.com/file/2023/7/75477_0s.png)
Android设置项目为系统APP方法
2022-11-16 08:55:02
SpringBoot整合RabbitMQ实现消息确认机制
2023-09-11 04:07:22
![](https://img.aspxhome.com/file/2023/2/108472_0s.png)
java中ThreadLocal的基本原理
2022-03-28 01:13:44
![](https://img.aspxhome.com/file/2023/2/76502_0s.png)
Android调试出现The selected device is incompatible问题解决
2023-08-11 12:58:34
![](https://img.aspxhome.com/file/2023/5/137935_0s.jpg)
java基础之String知识总结
2022-09-24 16:25:20
![](https://img.aspxhome.com/file/2023/9/118839_0s.png)
Java中的set集合是什么意思
2023-02-02 15:40:31
![](https://img.aspxhome.com/file/2023/9/119079_0s.png)
SpringBoot实现过滤器、拦截器与切片的实现和区别
2023-04-28 22:51:04
![](https://img.aspxhome.com/file/2023/1/84641_0s.png)
SpringMVC4 + MyBatis3 + SQL Server 2014整合教程(含增删改查分页)
2023-09-27 01:47:32
![](https://img.aspxhome.com/file/2023/6/89666_0s.png)
selenium.chrome写扩展拦截或转发请求功能
2022-11-29 08:29:33
![](https://img.aspxhome.com/file/2023/0/111150_0s.gif)
c# rsa加密解密详解
2023-06-11 00:54:17
![](https://img.aspxhome.com/file/2023/4/68094_0s.png)
java并发编程专题(三)----详解线程的同步
2022-03-18 05:35:42
![](https://img.aspxhome.com/file/2023/1/108361_0s.png)
SpringBoot 3.0 新特性内置声明式HTTP客户端实例详解
2022-11-25 13:47:20
![](https://img.aspxhome.com/file/2023/9/84289_0s.png)
Android OkHttp代理与路由的彻底理解
2023-03-17 01:21:51
![](https://img.aspxhome.com/file/2023/2/130452_0s.jpg)
Android的ListView多选删除操作实现代码
2023-06-25 22:24:38
![](https://img.aspxhome.com/file/2023/4/93274_0s.jpg)
在类库或winform项目中打开另一个winform项目窗体的方法
2023-08-14 06:47:31