java将一个目录下的所有数据复制到另一个目录下

 更新时间:2020年11月30日 17:10:56   作者:wangtianze  
这篇文章主要为大家详细介绍了java将一个目录下的所有数据复制到另一个目录下,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了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 + "结束");
  }
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Java ServletContext与ServletConfig接口使用教程

    Java ServletContext与ServletConfig接口使用教程

    ServletConfig对象,叫Servlet配置对象。主要用于加载配置文件的初始化参数。我们知道一个Web应用里面可以有多个servlet,如果现在有一份数据需要传给所有的servlet使用,那么我们就可以使用ServletContext对象了
    2022-09-09
  • java实现的统计字符算法示例

    java实现的统计字符算法示例

    这篇文章主要介绍了java实现的统计字符算法,涉及java针对字符的遍历、判断、运算等相关操作技巧,需要的朋友可以参考下
    2017-10-10
  • 详解Spring多数据源如何切换

    详解Spring多数据源如何切换

    这篇文章主要介绍了spring多数据源的如何切换,由于是spring项目,可以借助 spring 的DataSource 对象去管理,大体思路是创建一个类实现该接口,替换spring原有的DataSource 对象,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-06-06
  • java 引用类型的数据传递的是内存地址实例

    java 引用类型的数据传递的是内存地址实例

    这篇文章主要介绍了java 引用类型的数据传递的是内存地址实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化

    SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化

    这篇文章主要介绍了SpringBoot+JSON+AJAX+ECharts+Fiddler实现前后端分离开发可视化,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • Java实现图形界面计算器

    Java实现图形界面计算器

    这篇文章主要为大家详细介绍了Java实现图形界面计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • java创建jar包并被项目引用步骤详解

    java创建jar包并被项目引用步骤详解

    这篇文章主要介绍了java创建jar包并被项目引用步骤详解,jar包实现了特定功能的,java字节码文件的压缩包,更多相关内容需要的朋友可以参考一下
    2022-07-07
  • 详解Java中NullPointerException异常的原因和解决办法

    详解Java中NullPointerException异常的原因和解决办法

    本文主要介绍了详解Java中NullPointerException异常的原因和解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Spring Boot 条件注解详情

    Spring Boot 条件注解详情

    这篇文章主要介绍了Spring Boot 条件注解详情,SpringBoot条件注解@Conditional,可用于根据某个特定的条件来判断是否需要创建某个特定的Bean,下文更多相关介绍,需要的小伙伴可以参考一下
    2022-05-05
  • Java模拟qq软件的详细过程

    Java模拟qq软件的详细过程

    这篇文章主要为大家详细介绍了用Java实现模拟QQ,实现了消息通信+登陆界面美化,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09

最新评论