Java 目录拷贝
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 目录拷贝,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2140字,纯文字阅读大概需要4分钟。
内容图文
目录拷贝
1、首先是源文件和拷贝目标目录
2、确定递归方法的逻辑,终止条件:是文件时终止
3、当是目录时,创建目录,当是文件时拷贝文件
package com.bjpowernode.java.io; import java.io.*; /* 拷贝目录 */publicclass CopyAll { publicstaticvoid main(String[] args) { // 拷贝源 File srcFile = new File("D:\\course\\02-JavaSE\\document"); // 拷贝目标 File destFile = new File("C:\\a\\b\\c"); // 调用方法拷贝 copyDir(srcFile, destFile); } /** * 拷贝目录 * @param srcFile 拷贝源 * @param destFile 拷贝目标 */privatestaticvoid copyDir(File srcFile, File destFile) { if(srcFile.isFile()) { // srcFile如果是一个文件的话,递归结束。 // 是文件的时候需要拷贝。 // ....一边读一边写。 FileInputStream in = null; FileOutputStream out = null; try { // 读这个文件 // D:\course\02-JavaSE\document\JavaSE进阶讲义\JavaSE进阶-01-面向对象.pdf in = new FileInputStream(srcFile); // 写到这个文件中 // C:\course\02-JavaSE\document\JavaSE进阶讲义\JavaSE进阶-01-面向对象.pdf String path = (destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() : destFile.getAbsolutePath() + "\\") + srcFile.getAbsolutePath().substring(3); out = new FileOutputStream(path); // 一边读一边写byte[] bytes = newbyte[1024 * 1024]; // 一次复制1MBint readCount = 0; while((readCount = in.read(bytes)) != -1){ out.write(bytes, 0, readCount); } out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } return; } // 获取源下面的子目录 File[] files = srcFile.listFiles(); for(File file : files){ // 获取所有文件的(包括目录和文件)绝对路径 //System.out.println(file.getAbsolutePath());if(file.isDirectory()){ // 新建对应的目录 //System.out.println(file.getAbsolutePath()); //D:\course\02-JavaSE\document\JavaSE进阶讲义 源目录 //C:\course\02-JavaSE\document\JavaSE进阶讲义 目标目录 String srcDir = file.getAbsolutePath(); String destDir = (destFile.getAbsolutePath().endsWith("\\") ? destFile.getAbsolutePath() : destFile.getAbsolutePath() + "\\") + srcDir.substring(3); File newFile = new File(destDir); if(!newFile.exists()){ newFile.mkdirs(); } } // 递归调用 copyDir(file, destFile); } } }
原文:https://www.cnblogs.com/zhangbl55666/p/13696575.html
内容总结
以上是互联网集市为您收集整理的Java 目录拷贝全部内容,希望文章能够帮你解决Java 目录拷贝所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】